Konubinix' opinionated web of thoughts

Node.js Event Loop, Timers, and Process.nextTick()

Fleeting

nodejs

Phases Overview

  • timers: this phase executes callbacks scheduled by setTimeout() and setInterval().
  • pending callbacks: executes I/O callbacks deferred to the next loop iteration.
  • idle, prepare: only used internally.
  • poll: retrieve new I/O events; execute I/O related callbacks (almost all with the exception of close callbacks, the ones scheduled by timers, and setImmediate()); node will block here when appropriate.
  • check: setImmediate() callbacks are invoked here.
  • close callbacks: some close callbacks, e.g. socket.on(‘close’, …).

https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick

Between each run of the event loop, Node.js checks if it is waiting for any asynchronous I/O or timers and shuts down cleanly if there are not any.

https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick