இவை ஒற்றை thread-இல் non-blocking வேலையை வெளிப்படுத்தும் படிப்படியாக மேம்பட்ட வழிகள், அனைத்தும் அடிப்படையில் ஒரு நேரத்தில் ஒன்றாக ready callbacks-ஐ இயக்கும் ஒரு event loop-ஆல் இயக்கப்படுகின்றன. அவை பல threads-ஐ அல்ல, code எப்போது மீண்டும் தொடங்குகிறது என்பதை நிர்வகிக்கின்றன.
event loop
ஒரு single-threaded loop ஆனது ready callbacks-இன் ஒரு queue-ஐப் பராமரிக்கிறது. ஒரு async operation (timer, I/O) நிறைவடையும் போது, அதன் callback enqueue செய்யப்படுகிறது; loop அடுத்ததைத் தேர்ந்தெடுத்து அதை நிறைவு வரை இயக்கி, பிறகு மீண்டும் செய்கிறது. இயங்கும் callback-ஐ எதுவும் preempt செய்யாது, எனவே நீண்ட CPU வேலை அனைத்தையும் block செய்கிறது.
