在浏览器中,宏任务和微任务是分别放入不同的任务队列中的。\n\n宏任务包括但不限于以下几种:\n\n1. script(整体代码)\n2. setTimeout\n3. setInterval\n4. I/O 操作\n5. UI 渲染\n\n微任务包括但不限于以下几种:\n\n1. Promise 的回调函数\n2. MutationObserver 的回调函数\n3. process.nextTick(Node.js 环境)\n\n当执行栈为空时,事件循环会先检查微任务队列,如果有微任务,就会执行所有的微任务,直到微任务队列为空。然后,事件循环会从宏任务队列中取出一个宏任务进行执行。所以,先执行微任务,再执行宏任务。


原文地址: https://www.cveoy.top/t/topic/p0yE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录