event loop هو الآلية التي تسمح لـ Node.js أحادي الخيط (single-threaded) بتنفيذ عمليات I/O غير محجوبة (non-blocking). يقوم بمعالجة صف انتظار من callbacks بشكل مستمر: بينما يعمل JavaScript على خيط واحد، يتم إرسال عمليات I/O، وتُنفذ callbacksها من قبل الحلقة عند اكتمالها.
مراحل الحلقة
في كل تكرار ("tick") تنتقل عبر مراحل مرتبة، لكل منها صف انتظار callbacks خاص بها:
┌───────────────────────────┐
┌─>│ timers (setTimeout) │ ← expired timer callbacks
│ ├───────────────────────────┤
│ │ pending I/O callbacks │
│ ├───────────────────────────┤
│ │ poll (I/O events) │ ← retrieve new I/O; execute their callbacks
│ ├───────────────────────────┤
│ │ check (setImmediate) │
│ ├───────────────────────────┤
└──│ close callbacks │
└───────────────────────────┘
