Die Ausführungsumgebung der JS-Sprache ist „Single-Threaded“. Warum findet asynchrone Programmierung statt?
Einzelner Thread bedeutet, dass jeweils nur eine Aufgabe abgeschlossen werden kann. Wenn es mehrere Aufgaben gibt, müssen diese in die Warteschlange gestellt werden und warten, bis die vorherige Aufgabe abgeschlossen ist, bevor die nächste Aufgabe ausgeführt werden kann.
Zwei Aufgabenausführungsmodi: synchron und asynchron
"Asynchroner Modus":
Die Rückruffunktion ist die grundlegendste Methode der asynchronen Programmierung. Jede Aufgabe verfügt über eine oder mehrere Rückruffunktionen. Die nächste Aufgabe wird nicht ausgeführt, sondern die Rückruffunktion. Die letzte Aufgabe wird ausgeführt, nachdem die vorherige Aufgabe abgeschlossen ist konsistent mit der Aufgabe. Die Sortierreihenfolge ist inkonsistent und asynchron.
Vier Methoden der asynchronen Programmierung:
1. Callback-Funktion
Dies ist die grundlegendste Methode der asynchronen Programmierung.
Angenommen, es gibt zwei Funktionen f1 und f2, und letztere wartet auf das Ausführungsergebnis der ersteren.
Wenn f1 eine zeitaufwändige Aufgabe ist, können Sie f2 als Rückruffunktion von f1 schreiben.
function f1(callback){ setTimeout(function(){ //f1的任务代码 callback(); },1000); }Nach dem Login kopieren
Code ausführen
f1(f2)
Der Vorteil dieser Methode besteht darin, dass sie einfach und leicht zu verstehen und bereitzustellen ist. Der Nachteil besteht darin, dass sie dem Lesen und Verwalten des Codes nicht förderlich ist. Die verschiedenen Teile sind stark gekoppelt, der Prozess ist sehr verwirrend und nur einer Für jede Aufgabe kann eine Callback-Funktion angegeben werden.
2. Ereignisüberwachung
Übernehmen Sie den ereignisgesteuerten Modus. Die Ausführung einer Aufgabe hängt nicht von der Reihenfolge des Codes ab, sondern davon, ob ein Ereignis eintritt.
Binden Sie zunächst ein Ereignis an f1 (mithilfe der jQuery-Schreibmethode).
f1.on(‘done’,f2); //当f1发生done事件,就执行f2。然后对f1进行改写:Nach dem Login kopieren
lautet wie folgt:
fuction f1(){ setTimeout(function(){ //f1的任务代码 f1.trigger(‘done’); },1000); }Nach dem Login kopieren
f1.tigger('done') bedeutet, dass nach Abschluss der Ausführung Das Done-Ereignis wird sofort ausgelöst und somit mit der Ausführung von f2 begonnen.
Die Vorteile dieser Methode sind: Sie ist leicht zu verstehen, kann mehrere Ereignisse binden, jedes Ereignis kann mehrere Rückruffunktionen angeben und kann entkoppelt werden, was der Modularisierung förderlich ist.
Nachteile: Das gesamte Programm muss ereignisgesteuert werden und der laufende Prozess wird sehr unklar.
Verwandte Empfehlungen:
Einführung in 4 Methoden der asynchronen Javascript-Programmierung
Einführung in asynchrone Javascript-Programmiermethoden
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der asynchronen JS-Programmierbeispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!