概述

该方法用来把一些需要长时间运行的操作放在一个回调函数里,在浏览器完成后面的其他语句后,就立刻执行这个回调函数,

注意: 该方法可能不会被批准成为标准, 目前只有最新版本的 Internet Explorer 和Node.js 0.10+实现了该方法.

它遇到了 Gecko(Firefox) 和Webkit (Google/Apple) 的阻力.

语法

var immediateID = setImmediate(func, [param1, param2, ...]);
var immediateID = setImmediate(func);
  • immediateID 是这次setImmediate方法设置的唯一ID,可以作为 window.clearImmediate 的参数.
  • func 是将要执行的回调函数

参数param1 param2 ..都会直接传给函数func

备注

window.clearImmediate 方法可以用来取消通过setImmediate设置的将要执行的语句, 就像 window.clearTimeout 对应于 window.setTimeout一样.

该方法可以用来替代 setTimeout(fn, 0) 去执行繁重的操作(heavy operations

可以通过以下几种方式来模仿该功能:

  • window.postMessage 可以被用来触发一个 immediate 但会产生回调. 请注意, Internet Explorer 8包含postMessage的同步版本, 这意味着它不能被用来作为代替品.
  • MessageChannel 可以在Web Workers 内部很好的被使用, 而postMessage 的语义意味着它不能在那使用.
  • setTimeout(fn, 0)可以使用, 然而按照HTML规范, 嵌套深度超过5级的定时器, 会被限制在4ms , 他没有为setImmediate的天然及时性提供合适的polyfill.

所有这些技术都被纳入 robust setImmediate polyfill 中.

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 未实现 未实现 (Yes) 未实现 未实现
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 未实现 未实现 未实现 未实现 未实现

相关链接

window.clearImmediate

Specification: Efficient Script Yielding

Microsoft setImmediate API Demo

文档标签和贡献者

标签: 
此页面的贡献者: ZZES_REN, mdnwebdocs-bot, teoli, AshfaqHossain, ziyunfei
最后编辑者: ZZES_REN,