To so postopoma lepši načini izražanja neblokirajočega dela na eni sami niti, vse pod površjem poganja zanka dogodkov, ki naenkrat zaganja pripravljene povratne klice. Upravljajo kdaj se koda nadaljuje, ne pa več niti.
Zanka dogodkov
Enonitna zanka vzdržuje vrsto pripravljenih povratnih klicev. Ko se asinhrona operacija (časovnik, V/I) zaključi, se njen povratni klic postavi v vrsto; zanka pobere naslednjega in ga zažene do konca, nato ponovi. Nič ne prekine tekočega povratnega klica, zato dolgo CPU delo blokira vse.
[event loop] → run callback → I/O finishes → enqueue callback → run next → ...
