【发布时间】:2019-12-28 08:05:33
【问题描述】:
setTimeout(() => {
console.log("In setTimeout");
});
setImmediate(() => {
console.log("In setImmediate");
});
输出:
如您所见,第一次运行模块时,setImmediate 的回调在 setTimeout 的回调之前先执行,但第二次运行脚本时,情况正好相反。
【问题讨论】:
-
文档中有一个完整的部分讨论了non-determinism of execution order 之间的
setImmediate()和setTimeout()... -
@PatrickRoberts 文档说“如果两者都是从主模块中调用的,那么时间将受到进程性能的限制”。它有点模糊。为什么它在主模块中时受进程性能的约束,而在主模块外时则独立于进程性能?
标签: javascript node.js event-loop libuv