এগুলো একটি একক thread-এ non-blocking কাজ প্রকাশ করার ক্রমবর্ধমান সুন্দর উপায়, সবই নিচে একটি event loop দ্বারা চালিত যা একবারে একটি ready callback চালায়। তারা পরিচালনা করে code কখন resume করে, একাধিক thread নয়।
Event loop
একটি single-threaded loop ready callback-এর একটি queue বজায় রাখে। যখন একটি async operation (timer, I/O) সম্পূর্ণ হয়, তার callback enqueue হয়; loop পরেরটি তুলে নেয় এবং সম্পূর্ণ হওয়া পর্যন্ত চালায়, তারপর পুনরাবৃত্তি করে। কোনো কিছু একটি চলমান callback preempt করে না, তাই দীর্ঘ CPU কাজ সবকিছু block করে।
[event loop] → run callback → I/O finishes → enqueue callback → run next → ...
