微任务包括 process.nextTick ,promise ,MutationObserver,其中 process.nextTick 为 Node 独有。
宏任务包括 script , setTimeout ,setInterval ,setImmediate ,I/O ,UI rendering。
微任务>DOM渲染>宏任务
这里很多人会有个误区,认为微任务快于宏任务,其实是错误的。因为宏任务中包括了 script ,浏览器会先执行一个宏任务,接下来有异步代码的话才会先执行微任务。
console.log(1)
setTimeout(()=>{
console.log(2)
Promise.resolve().then(()=>{
console.log(5)
})
setTimeout(()=>{
console.log(8)
})
})
Promise.resolve().then(()=>{
console.log(3)
setTimeout(()=>{
console.log(6)
})
Promise.resolve().then(()=>{
console.log(7)
})
})
console.log(4)
1.4.3.7.2.5.6.8
原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/267073.html