You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何手动向callback queue(回调队列)中添加消息?

手动向JS回调队列添加消息的实现方式

JS 中的回调队列实际分为两类,不同队列的添加方式不同,执行优先级也有区别:

宏任务队列(即常规所说的callback queue)添加方式

  • 全环境通用方案:使用延迟为0的setTimeout,浏览器、Node.js 都支持
    setTimeout(() => {
      // 此处逻辑会被推入宏任务队列,等待调用栈完全清空后执行
    }, 0)
    
  • Node.js 专属方案:使用setImmediate,优先级比setTimeout(cb, 0)更高,会在本轮事件循环的IO操作结束后立即执行
    setImmediate(() => {
      // Node.js 环境下直接添加到宏任务队列
    })
    

微任务队列添加方式

微任务优先级高于宏任务,会在当前执行的宏任务结束后、下一个宏任务开始前全部执行完毕,添加方式如下:

  • 全环境通用方案:使用Promise.prototype.then
    Promise.resolve().then(() => {
      // 此处逻辑会被推入微任务队列
    })
    
  • Node.js 专属方案:使用process.nextTick,优先级比Promise微任务更高,会在当前调用栈清空后立即执行,早于所有其他微任务
    process.nextTick(() => {
      // Node.js 环境下最高优先级的异步任务
    })
    

内容的提问来源于stack exchange,提问作者Raz Buchnik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 00:45:05