Window: setImmediate() method
{{APIRef("HTML DOM")}} {{non-standard_header}}
This method is used to break up long-running operations and run a callback function immediately after the browser has completed other operations such as events and display updates.
Syntax
setImmediate(func)
setImmediate(func, param1)
setImmediate(func, param1, param2)
setImmediate(func, param1, param2, /* …, */ paramN)
Parameters
-
func- : The function you wish to call.
-
param1, …,paramN- : All parameters will be passed directly to your function.
Return value
The ID of the immediate which can be used later with {{DOMxRef("window.clearImmediate")}}.
Notes
The {{DOMxRef("Window.clearImmediate", "clearImmediate()")}} method can be used to clear the immediate actions, just like {{DOMxRef("Window.clearTimeout", "clearTimeout()")}} for {{DOMxRef("Window.setTimeout", "setTimeout()")}}.
This method can be used instead of the setTimeout(fn, 0) method to execute heavy operations.
The feature can be emulated in a few different ways:
- {{DOMxRef("Window.postMessage", "postMessage()")}} can be used to trigger an immediate but yielding callback.
- {{DOMxRef("MessageChannel")}} can be used reliably inside of Web Workers whereas the semantics of postMessage mean it cannot be used there.
setTimeout(fn, 0)can potentially be used, however as it is clamped to 4ms for timers nested more than 5 levels deep per the HTML spec, it does not make for a suitable polyfill for the natural immediacy ofsetImmediate.
All of these techniques are incorporated into a robust setImmediate polyfill.
Specifications
Not part of any current specifications. The Efficient Script Yielding specification is no longer being worked on.
Browser compatibility
{{Compat}}
See also
- Polyfill of
setImmediateincore-js - Microsoft
setImmediateAPI Demo - {{DOMxRef("Window.clearImmediate()")}}
- {{DOMxRef("Window.requestIdleCallback()")}}
谢谢你的反馈!