Event loop-ul este mecanismul care permite Node.js single-threaded să efectueze I/O non-blocare. El procesează continuu o coadă de callbacks: în timp ce JavaScript-ul dvs. rulează pe un thread, operațiile I/O sunt descărcate, iar callback-urile lor sunt rulate de loop atunci când se completează.
Fazele buclei
Fiecare iterație ("tick") se mișcă prin faze ordonate, fiecare cu propria sa coadă de callback:
┌───────────────────────────┐
┌─>│ timers (setTimeout) │ ← expired timer callbacks
│ ├───────────────────────────┤
│ │ pending I/O callbacks │
│ ├───────────────────────────┤
│ │ poll (I/O events) │ ← retrieve new I/O; execute their callbacks
│ ├───────────────────────────┤
│ │ check (setImmediate) │
│ ├───────────────────────────┤
└──│ close callbacks │
└───────────────────────────┘
