Window: setImmediate() 方法

已弃用:此功能不再推荐。尽管某些浏览器可能仍然支持它,但它可能已从相关的 Web 标准中删除,可能正在被弃用,或者可能仅出于兼容性目的而保留。避免使用它,如果可能,更新现有代码;请参阅此页面底部的兼容性表以指导您的决策。请注意,此功能可能随时停止工作。

非标准:此功能是非标准的,并且不在标准轨道上。不要在面向 Web 的生产站点上使用它:它不会对每个用户都起作用。实现之间也可能存在很大的不兼容性,并且行为将来可能会发生变化。

此方法用于分解长时间运行的操作,并在浏览器完成其他操作(例如事件和显示更新)后立即运行回调函数。

语法

js
setImmediate(func)
setImmediate(func, param1)
setImmediate(func, param1, param2)
setImmediate(func, param1, param2, /* …, */ paramN)

参数

func

您希望调用的函数。

param1、…、paramN

所有参数都将直接传递给您的函数。

返回值

立即执行的 ID,稍后可与window.clearImmediate一起使用。

注释

clearImmediate方法可用于清除立即操作,就像clearTimeout用于setTimeout()一样。

此方法可以替代setTimeout(fn, 0)方法来执行繁重的操作

此功能可以通过几种不同的方式模拟

  • postMessage可用于触发立即但会让出的回调。
  • MessageChannel可在 Web Workers 内部可靠地使用,而 postMessage 的语义意味着它不能在那里使用。
  • setTimeout(fn, 0)可以潜在地使用,但是因为它嵌套超过 5 层的计时器被限制在 4 毫秒根据 HTML 规范,它不适合作为setImmediate自然即时性的合适 polyfill。

所有这些技术都包含在一个强大的 setImmediate polyfill中。

规范

不属于任何当前规范的一部分。高效脚本让步规范不再进行开发。

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅