38. 宏任务和微任务

书诚小驿2025/03/10前端面经算法JavaScript

分析

回忆 JavaScript 的事件循环机制。JavaScript 是单线程的,事件循环处理任务队列,其中分为宏任务微任务。常见的宏任务包括 setTimeoutsetIntervalI/O 操作、UI 渲染等,而微任务包括 Promise then/catch/finally 方法、process.nextTick(Node.js 环境)等

代码的执行顺序通常是:同步代码 → 微任务 → 宏任务

setTimeout(function () {
  console.log(1);
}, 0);
new Promise(function executor(resolve) {
  console.log(2);
  for (var i = 0; i < 10000; i++) {
    // resolve() 不会中断同步代码:
    i === 9999 && resolve();
  }
  console.log(3);
}).then(function () {
  console.log(4);
});
console.log(5);
// 输出:2 3 5 4 1
最后更新时间' 2025/3/10 02:17:16
目录