# Understanding setImmediate()

> Understand how Node.js setImmediate() runs a callback in the next event loop iteration, and how it differs from setTimeout(0) and process.nextTick().

Author: Flavio Copes | Published: 2018-08-18 | Canonical: https://flaviocopes.com/node-setimmediate/

When you want to execute some piece of code asynchronously, but as soon as possible, one option is to use the `setImmediate()` function provided by [Node.js](https://flaviocopes.com/nodejs/):

```js
setImmediate(() => {
  //run something
})
```

Any function passed as the setImmediate() argument is a callback that's executed in the next iteration of the event loop.

How is `setImmediate()` different from `setTimeout(() => {}, 0)` (passing a 0ms timeout), and from `process.nextTick()`?

A function passed to `process.nextTick()` is going to be executed on the current iteration of the event loop, after the current operation ends. This means it will always execute before `setTimeout` and `setImmediate`.

A `setTimeout()` callback with a 0ms delay is very similar to `setImmediate()`. The execution order will depend on various factors, but they will be both run in the next iteration of the event loop.
