Event loop on mekanismi, joka mahdollistaa yksisäikeisenNode.js:n suorittaa non-blocking I/O -operaatioita. Se käsittelee jatkuvasti callback-jonoa: kun JavaScript-koodisi toimii yhdessä säikeessä, I/O-operaatiot siirretään pois, ja niiden callback-funktiot suoritetaan silmukan kautta kun ne valmistuvat.
Silmukan vaiheet
Jokaisessa iteraatiossa ("tick") edetään järjestettyjen vaiheiden läpi, joista jokaisella on oma callback-jono:
┌───────────────────────────┐
┌─>│ timers (setTimeout) │ ← expired timer callbacks
│ ├───────────────────────────┤
│ │ pending I/O callbacks │
│ ├───────────────────────────┤
│ │ poll (I/O events) │ ← retrieve new I/O; execute their callbacks
│ ├───────────────────────────┤
│ │ check (setImmediate) │
│ ├───────────────────────────┤
└──│ close callbacks │
└───────────────────────────┘
