files/en-us/web/api/window/setimmediate/index.md
{{APIRef("HTML DOM")}} {{deprecated_header}}{{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.
setImmediate(func)
setImmediate(func, param1)
setImmediate(func, param1, param2)
setImmediate(func, param1, param2, /* …, */ paramN)
func
param1, …, paramN
The ID of the immediate which can be used later with {{DOMxRef("window.clearImmediate")}}.
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:
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 of setImmediate.All of these techniques are incorporated into a robust setImmediate polyfill.
Not part of any current specifications. The Efficient Script Yielding specification is no longer being worked on.
{{Compat}}
setImmediate in core-jssetImmediate API Demo