在测试两个不同的代码时发现的。
其实也理解,一个是新建一个空的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