38. 宏任务和微任务
分析
回忆
JavaScript的事件循环机制。JavaScript是单线程的,事件循环处理任务队列,其中分为宏任务和微任务。常见的宏任务包括setTimeout、setInterval、I/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
