Event loop to mechanizm, który pozwala Node.js działającemu na jednym wątku wykonywać nieblokujące I/O. Ciągle przetwarza kolejkę callbacków: podczas gdy Twój JavaScript działa na jednym wątku, operacje I/O są offloadowane, a ich callbacki są uruchamiane przez loop, gdy się zakończą.
Fazy pętli
Każda iteracja ("tick") przechodzi przez uporządkowane fazy, każda z własną kolejką callbacków:
┌───────────────────────────┐
┌─>│ timers (setTimeout) │ ← expired timer callbacks
│ ├───────────────────────────┤
│ │ pending I/O callbacks │
│ ├───────────────────────────┤
│ │ poll (I/O events) │ ← retrieve new I/O; execute their callbacks
│ ├───────────────────────────┤
│ │ check (setImmediate) │
│ ├───────────────────────────┤
└──│ close callbacks │
└───────────────────────────┘
