node.js中setImmediate()与process.nextTick()的优先级
tags:网站 Node.js
在node.js的异步编程中,立即异步执行一个任务的方法:
setTimeout(function () {
//TODO
},0)
但定时器setTimeout()
setInterval()
定时是非精确的。
所以,还可以使用如下方法:
process.nextTick(function () {
//TODO
});
setImmediate(function () {
//TODO
});
两者使用方式类似,但是process.nextTick()
优先级要高于setImmediate()
。
原文
process.nextTick()
属于idle观察者,setImmediate()
属于check观察者。在每一个轮询事件检查中,idle观察者先于I/O观察者,I/O观察者先于check观察者。
结果验证:
setImmediate(function () {
//TODO
console.log(\'setImmediate\');
});
process.nextTick(function () {
//TODO
console.log(\'nextTick\');
});
console.log(\'end!\');
输出结果:
end!
nextTick
setImmediate
Process finished with exit code 0