宏/微任务
约 197 字小于 1 分钟
2026-03-31
下面代码执行结果是什么?
JS code example
console
Click the run button to execute the code ...
此问题是经典的事件循环问题。
上面代码的执行顺序为:
开始执行
├─ 遇到 Promise.resolve().then()
│ ├─ Promise 立即完成
│ └─ then 回调放入【微任务队列】
├─ 遇到 setTimeout()
│ ├─ 交给 Web API 计时
│ └─ 0ms 后回调放入【宏任务队列】
├─ 执行 console.log(3) → 输出 "3"
└─ 【同步代码执行完毕】
检查【微任务队列】
├─ 执行 Promise.then 回调
│ └─ console.log(1) → 输出 "1"
└─ 【微任务队列清空】
执行下一个【宏任务】
├─ 执行 setTimeout 回调
│ └─ console.log(2) → 输出 "2"
└─ 结束事件循环机制阅读文档:JavaScript 事件循环机制。