微任务包括 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/267073.html