Dies sind zunehmend angenehmere Wege, nicht-blockierende Arbeit auf einem einzigen Thread auszudrücken, allesamt darunter von einer Event Loop angetrieben, die bereite Callbacks einen nach dem anderen ausführt. Sie steuern, wann Code fortgesetzt wird, nicht mehrere Threads.
Die Event Loop
Eine einzelthreadige Schleife führt eine Warteschlange bereiter Callbacks. Wenn eine asynchrone Operation (Timer, I/O) abgeschlossen ist, wird ihr Callback eingereiht; die Schleife nimmt den nächsten und führt ihn bis zum Abschluss aus, dann wiederholt sie. Nichts verdrängt einen laufenden Callback, sodass lange CPU-Arbeit alles blockiert.
