从我读过setImmediate
为事件循环添加回调结束,而process.nextTick
在头部添加回调。但是official docs对setImmediate
:
计划I / O事件后“立即”执行回调 使用setTimeout()和。创建的回调和计时器 触发了setInterval()。
然而,此示例证明setImmediate
无论使用setTimeout
还是setInterval
添加定时器,都会在循环结束时添加回调:
function test() {
setTimeout(function () {
console.log('settimeout');
}, 5000);
const start = Date.now();
while (Date.now() - start < 6000) {
// blocking
}
setImmediate(function () {
console.log('setimmediate');
});
process.nextTick(function () {
console.log('nextTick');
});
}
test();
输出:
nextTick
settimeout
setimmediate
文档错误或者我没有正确理解它?