ਇਹ ਇੱਕ ਹੀ thread ਉੱਤੇ non-blocking ਕੰਮ ਨੂੰ ਬਿਆਨ ਕਰਨ ਦੇ ਹੌਲੀ-ਹੌਲੀ ਵਧੀਆ ਹੁੰਦੇ ਤਰੀਕੇ ਹਨ, ਜੋ ਸਾਰੇ ਹੇਠਾਂ ਇੱਕ event loop ਦੁਆਰਾ ਚਲਾਏ ਜਾਂਦੇ ਹਨ ਜੋ ready callbacks ਨੂੰ ਇੱਕ ਸਮੇਂ ਇੱਕ ਚਲਾਉਂਦਾ ਹੈ। ਉਹ ਪ੍ਰਬੰਧ ਕਰਦੇ ਹਨ ਕਿ code ਕਦੋਂ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ, ਨਾ ਕਿ ਕਈ threads।
Event loop
ਇੱਕ single-threaded loop ready callbacks ਦੀ ਇੱਕ queue ਬਣਾਈ ਰੱਖਦਾ ਹੈ। ਜਦੋਂ ਇੱਕ async operation (timer, I/O) ਪੂਰਾ ਹੁੰਦਾ ਹੈ, ਇਸ ਦਾ callback enqueue ਹੋ ਜਾਂਦਾ ਹੈ; loop ਅਗਲਾ ਚੁੱਕਦਾ ਹੈ ਅਤੇ ਇਸ ਨੂੰ ਪੂਰਾ ਹੋਣ ਤੱਕ ਚਲਾਉਂਦਾ ਹੈ, ਫਿਰ ਦੁਹਰਾਉਂਦਾ ਹੈ। ਚੱਲਦੇ callback ਨੂੰ ਕੁਝ ਵੀ preempt ਨਹੀਂ ਕਰਦਾ, ਇਸ ਲਈ ਲੰਬਾ CPU ਕੰਮ ਹਰ ਚੀਜ਼ ਨੂੰ block ਕਰ ਦਿੰਦਾ ਹੈ।
