Window:setImmediate() 方法

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

非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。

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

语法

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

参数

func

您希望调用的函数。

param1, …, paramN

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

返回值

即时操作的 ID,稍后可与 window.clearImmediate 一起使用。

注意

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

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

该功能可以通过几种不同的方式进行模拟

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

所有这些技术都被整合到一个健壮的 setImmediate polyfill 中。

规范

不属于任何现有规范。高效脚本让步规范已不再开发。

浏览器兼容性

另见