Dette er stadig penere måter å uttrykke ikke-blokkerende arbeid på en enkelt tråd, alle drevet under panseret av en event loop som kjører klare callbacks én om gangen. De styrer når kode gjenopptas, ikke flere tråder.
Event loop-en
En enkelttrådet løkke vedlikeholder en kø av klare callbacks. Når en async-operasjon (timer, I/O) fullføres, legges callbacken dens i køen; løkken plukker den neste og kjører den til den er ferdig, og gjentar deretter. Ingenting avbryter en callback som kjører, så langt CPU-arbeid blokkerer alt.
[event loop] → run callback → I/O finishes → enqueue callback → run next → ...
