Tai yra progresyviai malonesni būdai išreikšti neblokuojantį darbą vienoje gijoje, visi po apačia varomi įvykių ciklo, kuris vykdo paruoštus atgalinius iškvietimus po vieną. Jie valdo, kada kodas atsinaujina, o ne kelias gijas.
Įvykių ciklas
Vienos gijos ciklas prižiūri paruoštų atgalinių iškvietimų eilę. Kai asinchroninė operacija (laikmatis, I/O) baigiasi, jos atgalinis iškvietimas įtraukiamas į eilę; ciklas paima kitą ir vykdo jį iki galo, tada kartoja. Niekas neišstumia vykdomo atgalinio iškvietimo, todėl ilgas CPU darbas blokuoja viską.
[event loop] → run callback → I/O finishes → enqueue callback → run next → ...
