Den Node.js Event Loop verstehen
Der Event Loop ist kein Arbeiter. Er ist ein Koordinator.
Viele Entwickler finden den Event Loop komplex. Die Schwierigkeit entsteht oft dadurch, dass zu viele Konzepte gleichzeitig vermischt werden. Man muss libuv, den Call Stack, Promises und I/O gleichzeitig im Blick behalten.
Hier ist die einfache Wahrheit: Der Event Loop plant die Arbeit. Er erledigt sie nicht selbst.
JavaScript läuft auf einem Single Thread. Das bedeutet, dass der Code linear abläuft. Eine Aufgabe muss abgeschlossen sein, bevor die nächste beginnt. Wir benötigen ein System, um asynchrone Aufgaben wie das Lesen von Dateien oder Netzwerk-Anfragen zu verwalten, ohne das gesamte Programm anzuhalten.
So funktioniert es:
Der Event Loop verschiebt Callbacks aus verschiedenen Queues in den Call Stack. Stellen Sie sich jede Phase wie eine Warteschlange vor. Der Event Loop ist die Person, die die Leute aus der Schlange in den Raum leitet.
Die Hauptphasen sind:
- Timers: Verarbeitet Callbacks von setTimeout und setInterval.
- Pending Callbacks: Verarbeitet spezifische Systemfehler wie TCP-Fehler.
- Idle und Prepare: Interne Phasen, die von libuv verwendet werden. Diese werden Sie nicht nutzen.
- Poll: Die wichtigste