什么是宏任务与微任务以及它们的执行顺序
2024-01-09 14:21:52
微任务和宏任务是指在 JavaScript 中执行异步任务的两种不同的队列。
宏任务
宏任务: 宏任务是指由浏览器发起的、在事件循环中执行的异步任务。常见的宏任务包括:
- setTimeout
- setInterval
- I/O 操作
- UI 渲染
宏任务的执行顺序是在每一轮事件循环结束时执行,在下一轮事件循环开始前执行。
微任务
微任务是指由 JavaScript 引擎发起、在当前宏任务执行结束后立即执行的异步任务。常见的微任务包括:
- Promise 的回调函数
- $nextTick
微任务会在当前宏任务执行完毕后、下一个宏任务执行之前执行。
在事件循环中,每轮循环分为以下几个阶段:
- 执行栈: 执行同步任务,将宏任务加入宏任务队列。
- 消息队列检查: 将消息队列中的宏任务添加到执行栈,准备执行。
- 微任务队列: 执行微任务队列中的所有任务。
- 渲染: 更新页面渲染。
- 宏任务执行: 执行宏任务队列中的一个任务,重复上述过程。
关于微任务和宏任务的执行顺序:
- 每次执行栈为空时,会先执行微任务队列中的所有任务。
- 微任务执行完毕后,会检查是否有渲染工作,执行渲染。
- 渲染完成后,执行宏任务队列中的一个任务,然后重复上述步骤。
总体来说,微任务的优先级高于宏任务,微任务会在宏任务之前执行。这意味着微任务中的任务会优先于下一个宏任务执行,保证了相对较快的执行速度。
文章来源:https://blog.csdn.net/xu1912715645/article/details/135466025
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!