Heim > Artikel > Web-Frontend > JavaScript-Ereignisschleife
Was ist die JavaScript-Ereignisschleife?
In JavaScript ist eine Ereignisschleife ein Mechanismus, der die Ausführung von Code, Ereignissen oder Nachrichten mithilfe nicht blockierender E/A steuert. Dies bietet eine Möglichkeit für nicht blockierende oder asynchrone Vorgänge in JavaScript.
1.Single Threaded
JavaScript ist Single-Threaded, was bedeutet, dass es jeweils eine Aufgabe ausführt. Single-Threaded, daher ist ein Thread, auf dem JavaScript ausgeführt wird, der sogenannte „Haupt-Thread“.
2.Call Stack
Es ist die Datenstruktur, in der JavaScript Funktionsaufrufe verfolgt. Ein Funktionsaufruf wird auf den Stapel geschoben. Bei seiner Rückkehr wird es entfernt. Wenn es leer ist, ist JavaScript bereit, den nächsten Vorgang zu verarbeiten. Es wird allgemein auch als „Hauptthread“ bezeichnet.
3.Heap
Hier speichert JavaScript Objekte und Variablen. Es wird für die dynamische Speicherzuweisung verwendet.
4.Ereigniswarteschlange
Eine Warteschlange mit Nachrichten oder Aufgaben, die auf ihre Ausführung warten. Wenn eine Aufgabe zur Warteschlange hinzugefügt wird, wartet sie zur Ausführung darauf, dass der Aufrufstapel leer ist.
5.Ereignisschleife
Es ist etwas, das ständig den Aufrufstapel und die Ereigniswarteschlange überwacht. Wenn der Aufrufstapel leer ist, werden Aufgaben aus der Ereigniswarteschlange in den Aufrufstapel verschoben und ausgeführt.
Prozess
Rückruffunktionen: Wenn ein asynchroner Vorgang abgeschlossen ist, wird seine Rückruffunktion in die Ereigniswarteschlange verschoben.
Überprüfung der Ereignisschleife: Die Ereignisschleife überprüft jetzt sowohl den Aufrufstapel als auch die Ereigniswarteschlange in der Reihenfolge. Wenn der Aufrufstapel leer ist, wird die erste Aufgabe aus der Ereigniswarteschlange ausgewählt und in den Aufrufstapel verschoben, um sie auszuführen.
console.log('Start'); setTimeout(() => { console.log('Timeout 1'); }, 1000); setTimeout(() => { console.log('Timeout 2'); }, 500); console.log('End');
Beachten Sie, dass Folgendes Schritt für Schritt geschieht:
Zusammenfassung
Das obige ist der detaillierte Inhalt vonJavaScript-Ereignisschleife. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!