To coraz przyjemniejsze sposoby wyrażania nieblokującej pracy na jednym wątku, wszystkie napędzane pod spodem przez pętlę zdarzeń, która uruchamia gotowe callbacki pojedynczo. Zarządzają tym, kiedy kod wznawia się, a nie wieloma wątkami.
Pętla zdarzeń
Jednowątkowa pętla utrzymuje kolejkę gotowych callbacków. Gdy operacja asynchroniczna (timer, I/O) się kończy, jej callback trafia do kolejki; pętla wybiera następny i wykonuje go do końca, po czym powtarza. Nic nie wywłaszcza działającego callbacku, więc długa praca CPU blokuje wszystko.
[event loop] → run callback → I/O finishes → enqueue callback → run next → ...
