Web/API/Window/setImmediate

From Get docs

Non-standard This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.


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.

This method is not expected to become standard, and is only implemented by recent builds of Internet Explorer and Node.js 0.10+. It meets resistance both from Gecko (Firefox) and Webkit (Google/Apple).

Syntax

var immediateID = setImmediate(func, [param1, param2, ...]);
var immediateID = setImmediate(func);
  • where immediateID is the ID of the immediate which can be used later with window.clearImmediate.
  • func is the function you wish to call.

All parameters will be passed directly to your function.

Notes

The clearImmediate method can be used to clear the immediate actions, just like clearTimeout for 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:

  • postMessage can be used to trigger an immediate but yielding callback. Do note that Internet Explorer 8 includes a synchronous version of postMessage, which means it cannot be used as a fallback.
  • 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 of setImmediate.

All of these techniques are incorporated into a robust setImmediate polyfill.

Specifications

Specification Status Comment
[https://w3c.github.io/setImmediate/#si-setImmediate Efficient Script Yielding

The definition of 'setImmediate' in that specification.]

Editor's Draft Initial definition.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

setImmediate

Non-standard'

Chrome

No support No

Edge

No support 12 — 79

Firefox

No support No

IE

Full support 10

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

Legend

Full support  
Full support
No support  
No support
Non-standard. Expect poor cross-browser support.'
Non-standard. Expect poor cross-browser support.


See also