帮助理解microTask和Task的好题目。原因是JS是单线程,不然浏览器不知道听谁的,会错乱。所以只能按照单线程处理。
此处: Promise是微任务(.then的时候注册promise)。 setTimeout是宏任务。
var a = 1;
console.log('a:', a)
var b = 2;
console.log('b:', b)
setTimeout(function task1(){
console.log('task1:', 5)
Promise.resolve(6).then(function microtask2(res){
console.log('microtask2:', res)
})
}, 0)
Promise.resolve(4).then(function microtask1(res){
console.log('microtask1:', res)
})
var c = 3;
console.log('c:', c)
输出
an
![image.png](p1-juejin.byteimg.com/tos-cn-i-k3…