根据我的理解,setImmediate在事件循环的Check
阶段执行。 Poll
阶段计划在Timers
阶段执行定时器,如果它们的最小阈值已经过去。
但是下面的代码在setImmediate之前执行计时器回调(并不总是)。这是怎么可能的,因为计时器应该安排在Poll
阶段,而Check
阶段是在它之后呢?
是否与主模块中执行的代码相关,如果是这样,setImmediate有时会在定时器之前执行吗?
setTimeout(function() {
console.log('setTimeout');
}, 0);
setImmediate(function() {
console.log('setImmediate');
});