在测试两个不同的代码时发现的。
其实也理解,一个是新建一个空的promise,另一个是新建的promise马上执行,去分支resolve状态,
当然就空的在后。
<script>
//setImmediate(function() {
// console.log(1);
//}, 0);
setTimeout(function() {
console.log(2);
}, 0);
Promise.resolve().then(function() {
console.log('promise');
setTimeout(function() {
console.log('setTimeout in microtask');
}, 0);
}).then(function() {
console.log('promise2');
});
new Promise(function(resolve) {
console.log(3);
resolve();
console.log(4);
}).then(function() {
console.log(5);
});
console.log(6);
//process.nextTick(function() {
// console.log(7);
//});
console.log(8);
</script>
输出:
3 test.html:69 4 test.html:74 6 test.html:78 8 test.html:59 promise test.html:71 5 test.html:64 promise2 test.html:56 2 test.html:61 setTimeout in microtask