什么是宏任务与微任务以及它们的执行顺序

2024-01-09 14:21:52

文章目录


微任务和宏任务是指在 JavaScript 中执行异步任务的两种不同的队列。

宏任务

宏任务: 宏任务是指由浏览器发起的、在事件循环中执行的异步任务。常见的宏任务包括:

  • setTimeout
  • setInterval
  • I/O 操作
  • UI 渲染
    宏任务的执行顺序是在每一轮事件循环结束时执行,在下一轮事件循环开始前执行。

微任务

微任务是指由 JavaScript 引擎发起、在当前宏任务执行结束后立即执行的异步任务。常见的微任务包括:

  • Promise 的回调函数
  • $nextTick

微任务会在当前宏任务执行完毕后、下一个宏任务执行之前执行。
在事件循环中,每轮循环分为以下几个阶段:

  • 执行栈: 执行同步任务,将宏任务加入宏任务队列。
  • 消息队列检查: 将消息队列中的宏任务添加到执行栈,准备执行。
  • 微任务队列: 执行微任务队列中的所有任务。
  • 渲染: 更新页面渲染。
  • 宏任务执行: 执行宏任务队列中的一个任务,重复上述过程。

关于微任务和宏任务的执行顺序:

  • 每次执行栈为空时,会先执行微任务队列中的所有任务。
  • 微任务执行完毕后,会检查是否有渲染工作,执行渲染。
  • 渲染完成后,执行宏任务队列中的一个任务,然后重复上述步骤。

总体来说,微任务的优先级高于宏任务,微任务会在宏任务之前执行。这意味着微任务中的任务会优先于下一个宏任务执行,保证了相对较快的执行速度。

文章来源:https://blog.csdn.net/xu1912715645/article/details/135466025
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。