event loop ਇੱਕ ਵਿਧੀ ਹੈ ਜੋ ਸਿੰਗਲ-ਥ੍ਰੈਡ ਵਾਲੇ Node.js ਨੂੰ non-blocking I/O ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦੀ ਹੈ। ਇਹ ਲਗਾਤਾਰ callbacks ਦੀ ਕਤਾਰ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਦਾ ਹੈ: ਜਦੋਂ ਤੁਹਾਡਾ JavaScript ਇੱਕ ਥ੍ਰੈਡ ਉੱਤੇ ਚਲਦਾ ਹੈ, I/O ਅਪਰੇਸ਼ਨ ਹਟਾ ਦਿੱਤੇ ਜਾਂਦੇ ਹਨ, ਅਤੇ ਜਦੋਂ ਇਹ ਪੂਰੇ ਹੋ ਜਾਂਦੇ ਹਨ ਤਾਂ ਉਨ੍ਹਾਂ ਦੇ callbacks ਲੂਪ ਦੁਆਰਾ ਚਲਾਏ ਜਾਂਦੇ ਹਨ।
ਲੂਪ ਦੇ ਪੜਾਅ
ਹਰ ਇਟਰੇਸ਼ਨ ("tick") ਆਰਡਰ ਕੀਤੇ ਪੜਾਵਾਂ ਵਿੱਚ ਚਲਦਾ ਹੈ, ਹਰ ਇੱਕ ਦੀ ਆਪਣੀ 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 │
└───────────────────────────┘
