Heim >Web-Frontend >js-Tutorial >Es ist nicht so schwer! „Promise' in Javascript verstehen
Der Inhalt dieses Artikels ist sehr gut für Javascript-Anfänger geeignet. Es wird in einer einfachen und leicht verständlichen Sprache beschrieben, sodass Sie sich keine Sorgen machen müssen, es nicht zu verstehen.
Versprechen ist ein unverzichtbarer Wissenspunkt beim Erlernen der modernen Javascript-Sprache. Viele Menschen fühlen sich beim Lesen verwirrt. Der Hauptgrund lässt sich in einem Satz zusammenfassen:
Der Code wird nicht mehr von oben nach unten ausgeführt.
Normalerweise wird der von uns geschriebene Code sequentiell ausgeführt, wir schreiben beispielsweise einen Code, der von 1 bis 3 zählt.
console.log(1) console.log(2) console.log(3)
Drücken Sie F12, um die Konsole unseres Browsers zu öffnen, kopieren Sie den obigen Code hinein, drücken Sie die Eingabetaste und Sie können sehen, dass die Zahlen 1 bis 3 der Reihe nach ausgedruckt werden.
1 2 3
Wenn wir nun die Anforderung haben, dass die Reihenfolge der Codes nicht geändert werden kann, die Reihenfolge der endgültigen Ausdrucke jedoch unabhängig von der Reihenfolge der Codes sein muss, können wir das dann tun?
Stellen wir uns vor, wenn 1, 2 und 3 jeweils von drei Personen gedruckt werden, wäre es sehr einfach. Wir müssen ihnen nur die Aufgabe mitteilen, gleichzeitig Zahlen zu drucken, und die Reihenfolge der Ausdrucke hängt nur von der Ausführungszeit der Aufgaben ab.
Wie weisen wir also die Druckaufgabe drei Personen zu? Hier wird Promise verwendet. Indem wir ein neues Promise-Objekt erstellen, können wir einen Codeabschnitt einem neuen „Prozess“ zuweisen, anstatt ihn auf dem aktuellen „Prozess“ auszuführen. Beachten Sie, dass der „Prozess“ hier nicht mit dem Betriebssystemprozess übereinstimmt, über den wir oft sprechen, sondern nur ein abstraktes Konzept ist, das eine virtuelle Einheit darstellt, die Code nacheinander ausführt.
Wie wir gerade gesagt haben, kann Promise als neuer „Prozess“ betrachtet werden. Wenn wir also möchten, dass er einen beliebigen Code ausführt, können wir ihn in eine Funktion einschließen und ihm übergeben. Auf diese Weise wird der Code nicht sofort ausgeführt.
Promise stellt uns außerdem zwei Funktionen zur Verfügung, eine ist „Auflösen“ und die andere ist „Ablehnen“, die wir aufrufen können, wenn die Aufgabe abgeschlossen bzw. fehlgeschlagen ist. Diese beiden Funktionen werden als Parameter an Promises interne Funktion übergeben. Wir können also eines wie folgt zusammenstellen:
Promise( (resolve, _reject) => { setTimeout(() => { console.log(1) resolve() }, 300) } )
Hier verwenden wir setTimeout, um eine zeitaufwändige Aufgabe zu simulieren. In realen Szenarien kann diese Aufgabe darin bestehen, eine Datei zu lesen, eine Netzwerkschnittstelle anzufordern oder auf Benutzereingaben zu warten. Wenn die Aufgabe abgeschlossen ist, rufen wir die Funktion „resolvethe“ auf, um anzuzeigen, dass die Aufgabe abgeschlossen wurde.
Dann folgen wir der gleichen Methode und versprechen, wenn wir die anderen beiden zusammenbauen, müssen wir ihnen nur unterschiedliche Drucknummern und die für die Aufgabe benötigte Zeit mitteilen. Schließlich sieht der vollständige Code so aus. Sie können versuchen, ihn in die Konsole zu kopieren und auszuprobieren.
Promise( (resolve, _reject) => { setTimeout(() => { console.log(1) resolve() }, 300) } ) new Promise( (resolve, _reject) => { setTimeout(() => { console.log(2) resolve() }, 200) } ) new Promise( (resolve, _reject) => { setTimeout(() => { console.log(3) resolve() }, 100) } )
Schließlich hängt die Reihenfolge, in der die Zahlen gedruckt werden, mit der Ausführungszeit der Aufgaben zusammen:
3 2 1
Beim gleichzeitigen Programmieren geht es darum, die Ausführung einer großen Anzahl von Aufgaben gleichzeitig auf einer begrenzten Anzahl von CPU-Kernen zu simulieren. Promise in Javascript bietet eine bequeme und schnelle Möglichkeit der gleichzeitigen Programmierung sowie eine Reihe von Spezifikationen für die Verarbeitung von Rückgabewerten und Fehlerwerten. Nachdem wir diese Spezifikation verstanden und uns damit vertraut gemacht haben, können wir die Effizienz bei der Bearbeitung gleichzeitiger Aufgaben erheblich verbessern.
Das obige ist der detaillierte Inhalt vonEs ist nicht so schwer! „Promise' in Javascript verstehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!