这段代码打印出setTimeout在setImmediate之前。为甚麽呢?我以为所有的setImmediates都是在setTimeouts之前运行的。
setImmediate(function() {
console.log("i");
});
setTimeout(function() {
console.log("t");
}, 0);
var i;
for (i = 0 ; i < 3000000000 ; ++i) {}发布于 2019-02-23 17:20:35
如果两者都是从主模块内部调用的,则计时将受到进程性能的限制(这可能会受到计算机上运行的其他应用程序的影响)。
然而,在这种情况下确实会发生这种情况:如果您在一个I/O周期内移动两个调用,则始终首先执行直接回调:
// timeout_vs_immediate.js
const fs = require('fs');
fs.readFile(__filename, () => {
setTimeout(() => {
console.log('timeout');
}, 0);
setImmediate(() => {
console.log('immediate');
});
});https://stackoverflow.com/questions/35484296
复制相似问题