可以这样理解 只有promise
是微任务(还有其他的不常用),其他的都是宏任务
有一个队列,js执行,点击事件,setTimeout都是往队列里推一条任务,这就是你说的宏任务
在每个宏任务执行完成后会调用:本轮被加入进去的微任务
然后下一个宏任务
console.log('task 1')
Promise.resolve().then(() => {
console.log('task 1之后的微任务')
setTimeout(() => {
console.log('task 3')
}, 0)
})
setTimeout(() => {
console.log('task 2')
}, 0)
console.log('task 1 end')
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…