新的 setImmediate API 的跨浏览器实现。
setImmediate.js 是一个高度跨浏览器的 setImmediate 和 clearImmediate API 实现,由 Microsoft 提交给 Web 性能工作组。setImmediate 允许脚本让步于浏览器,以异步执行某项操作,这种方式通常比常规的 setTimeout(..., 0) 模式更高效,且耗电更少。
MessageChannel 的浏览器中的 Web 工作者, 我无法找到关于这些的可靠信息。setImmediate API 按照规定提供了对环境的 [任务队列][] 的访问权限,有时也称为其"宏任务"队列。这与 MutationObserver 等 Web 功能、 Promise 和 Object.observe 等语言功能以及 process.nextTick 等 Node.js 功能使用的 [微任务队列][] 截然不同。宏任务队列每次循环都会在处理完所有已排队的任务后返回到事件循环,即使宏任务本身还排队了更多的宏任务。而微任务队列则会一直执行已排队的微任务,直到排队任务耗尽。
实际上,这意味着如果在另一个使用 setImmediate 队列的任务中调用 setImmediate,则会回到事件循环,并在这些调用之间执行任何需要进行的 I/O 或渲染任务,而不是尽快执行队列中的任务。
在 0.9 以下的 Node.js 版本中,setImmediate 不可用,但 [process.nextTick][nextTick] 可用,并且在这些版本中,process.nextTick 使用宏任务语义。因此,我们使用它来替换 sup
暂无开放 Issues,或尚未同步最近议题。