Event loop je mehanizam koji omogućava single-threaded Node.js da izvršava non-blocking I/O. Kontinuirano obrađuje red čekanja callback-a: dok se vaš JavaScript izvršava na jednoj niti, I/O operacije se premještaju, a njihovi callback-i se izvršavaju kada se završe.
Faze petlje
Svaka iteracija ("tick") prolazi kroz uređene faze, od kojih svaka ima svoju red čekanja callback-a:
┌───────────────────────────┐
┌─>│ timers (setTimeout) │ ← expired timer callbacks
│ ├───────────────────────────┤
│ │ pending I/O callbacks │
│ ├───────────────────────────┤
│ │ poll (I/O events) │ ← retrieve new I/O; execute their callbacks
│ ├───────────────────────────┤
│ │ check (setImmediate) │
│ ├───────────────────────────┤
└──│ close callbacks │
└───────────────────────────┘
