事件循环

2025-02-17  本文已影响0人  alue

事件循环的核心流程

事件循环的每一轮迭代遵循以下顺序:

  1. 执行一个宏任务(如 setTimeout 回调、script 整体代码)。
  2. 清空所有微任务队列(如 Promise.then、MutationObserver)。
  3. 渲染页面(如果需要)。
  4. 执行下一个宏任务(从宏任务队列中取出)。

这意味着:

console.log('执行宏任务1');
document.getElementsByTagName('body')[0].style.backgroundColor = 'red';
setTimeout(() => { console.log('执行宏任务2');}, 0);
Promise.resolve().then(() => {
    console.log('执行微任务1')
    let start = Date.now();
    while (Date.now() - start < 3000) {} // 阻塞3秒
});
上一篇 下一篇

猜你喜欢

热点阅读