微任务包括 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。