最初我对代码中的数字顺序有疑问
(function() {
setTimeout(() => console.log(1), 0);
Promise.resolve(true).then(() => console.log(2));
})();

对于我自己,我已经解释过,setTimeout
实际上使用的是4ms,而不是0。
但代码与setImmediate
(function() {
setImmediate(() => console.log(1), 0);
Promise.resolve(true).then(() => console.log(2));
})();

问过这个问题的人说原因是,在v8中Promise不是webapis的一部分并且在内部循环中运行。
也许有其他解释?或链接以查找更多详细信息?
如果我使用放大镜进行可视化,我会看到相同的
Loupe visualization - 我正在寻找解释