setTimeout(function() {
console.log('setTimeout1');
Promise.resolve().then(function() {
console.log('promise1');
}).then(function() {
console.log('promise2');
})
}, 0);
setTimeout(function() {
console.log('setTimeout2');
Promise.resolve().then(function() {
console.log('promise3');
}).then(function() {
console.log('promise4');
})
}, 0);
在nodejs(6.10.2LTS)中执行,Chrome的结果是这两张图片。左边是节点,另一边是Chrome。
当我执行几次时,节点上会有两个不同的结果。 我知道在浏览器运行时我们可以通过WhatWG和Promises / A + Standard(任务队列机制)来解释事件循环。
即使通过我已经阅读过这样的文件 The Node.js Event Loop, Timers, and process.nextTick(), 我仍然无法解释这两个运行时的不同结果。最重要的是如何解释nodejs的结果。