常见宏任务列表:

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