常见宏任务列表:
setTimeout- 最常用的定时器。
setInterval- 循环定时器。
setImmediate(Node.js 独有 / IE 浏览器)- 在 Node.js 中,它设计用来在当前 Poll 阶段结束后立即执行(通常在
setTimeout(..., 0)之后,但情况复杂)。 - 注意:标准的 Chrome/Firefox 不支持这个,只有 IE/Edge 旧版支持。
- 在 Node.js 中,它设计用来在当前 Poll 阶段结束后立即执行(通常在
- Script (整体代码块)
- 你写的 JS 文件本身,第一次加载执行时,算是一个巨大的宏任务。
- I/O 操作
- 文件读取、网络请求回调等(主要在 Node.js 中体现明显)。
- UI 交互事件
- 浏览器的点击、滚动、输入等事件回调。
MessageChannel- Vue 等框架在某些极端情况下用来模拟宏任务的黑科技。