不运行代码,猜猜下面的输出顺序?
代码如下:
setTimeout(function() {
console.log('step1')
}, 0);
new Promise(function(resolve) {
console.log('step2');
for (var i = 1; i <= 3; i++) {
i == 2 && resolve();
console.log(i)
}
}).then(function() {
console.log('step3')
});
console.log('step4');
介绍两个概念:
宏任务:包括整体代码script,setTimeout,setInterval,setImmediate
微任务:Promise,process.nextTick
结果顺序: step2 -> 1 -> 2 -> 3 -> step4 -> step3 -> step1