JS之微任务和宏任务的执行顺序。
JavaScript 中微任务(Microtask)和宏任务(Macrotask)的执行顺序是由事件循环(Event Loop)来管理的。在一次事件循环中,宏任务执行完成后,会先执行所有微任务,然后再执行下一个宏任务。
具体来说,事件循环中的执行顺序如下:
1. 执行一个宏任务(例如:整体代码、setTimeout、setInterval、I/O、UI 渲染等)。
2. 执行过程中,如果产生了微任务(例如:Promise 的 then/catch/finally),则将微任务添加到微任务队列。
3. 宏任务执行完毕后,检查微任务队列,依次执行所有微任务,直到微任务队列为空。
4. 检查是否需要进行 UI 重渲染,如果需要则进行渲染。
5. 重复以上步骤,执行下一个宏任务。
这里需要注意的是,微任务比宏任务优先级更高,因此在一次事件循环中,微任务总是在下一个宏任务之前执行。这保证了微任务能够尽可能快地执行,从而在当前事件循环中处理完异步操作,避免了一些问题,比如优先级反转和防止 UI 渲染阻塞等。
因此,总体来说,JavaScript 中微任务和宏任务的执行顺序可以归纳为:
1. 当前宏任务执行完毕后,立即执行所有微任务。
2. 微任务执行完毕后,检查是否需要进行 UI 渲染。
3. 执行下一个宏任务。
声音简介
音频列表
- 2024-03
- 2024-03
- 2024-03
- 2024-03
- 2024-03
- 2024-03
- 2024-03
- 2024-03
- 2024-03
- 2024-03
查看更多
用户评论