1. Was ist Promise?
2. Warum gibt es Promise?Promise wurde entwickelt, um mehrere Probleme mit dem Callback-Mechanismus zu lösen, der bei der asynchronen Programmierung verwendet wird:
Callback-Hölle: Promise kann verschachtelte Callbacks in .then().then()… umwandeln, wodurch das Schreiben und Lesen von Code intuitiver wird
Drei allgemeine Promise-APIs
Vier häufige Verwendungszwecke von Promise
.then() ist eine Funktion, die keinen Wert zurückgibt, was dazu führt, dass die Promise-Kette nicht mehr fortgesetzt wird. Zu diesem Zeitpunkt hat ein späterer Aufruf von .then() keine Auswirkung. Versprechen.resolve('foo').dann(Funktion(en) { Konsole.log(s); }).dann(Funktion(en) { // Nie ausgeführt Konsole.log(s); }); Es gibt eine Rückgabewertfunktion in .then(), die es der Promise-Kette ermöglicht, fortzufahren Versprechen.resolve('foo').dann(Funktion(en) { Konsole.log(s); gibt s + 'bar' zurück; }).dann(Funktion(en) { Konsole.log(s); }); // foo // foobar .then() hat eine Funktion, die einen Wert zurückgibt, und der Rückgabewert ist ein weiteres Promise-Objekt, das auch dafür sorgt, dass das Promise fortgesetzt wird. Der Unterschied zum ersteren besteht darin, dass ein erneuter Aufruf von .then() eine asynchrone Operation auslösen kann, sodass die nächste Runde von resolve() nicht sofort ausgelöst wird. Versprechen.resolve('foo').dann(Funktion(en) { returniere neues Promise((lösen, ablehnen) => { Konsole.log(s); setzeTimeout(() => { Auflösung(s + 'bar') }, 1000); }); }).dann(Funktion(en) { Konsole.log(s); }); // foo // foobar (wird 1 Sekunde nach der Anzeige von „foo“ angezeigt)
//Demo const promise1 = Versprechen.resolve(3); Konstante Versprechen2 = 42; const promise3 = neues Versprechen((lösen, ablehnen) => { setTimeout(auflösen, 100, 'foo'); }); Versprechen.alles([Versprechen1, Versprechen2, Versprechen3]).dann((Werte) => { konsole.log(Werte); }); // erwartete Ausgabe: Array [3, 42, "foo"] Unterschied zwischen Promise.all() und Sync Await //Sync-Wartevorgang, Zeit 2 Sekunden, async-Funktion Index2() { konsole.zeit() const p1 = warte auf neues Promise((lösen, ablehnen) => { console.log('Hier ist p1') setzeTimeout(() => { resolve('Hier ist die Rückgabe von p1') }, 1000) }) const p2 = warte auf neues Promise((lösen, ablehnen) => { console.log('Hier ist p2') setzeTimeout(() => { resolve('Hier ist die Rückgabe von p2') }, 1000) }) Konsole.log(p1) Konsole.log(p2) konsole.timeEnd() } Index2(); // Verwenden Sie Promise.all(), um den Aufruf zu implementieren. Betriebszeit 1 Sekunde Funktion Index() { konsole.zeit() const p1 = neues Versprechen((lösen, ablehnen) => { console.log('Hier ist p1') setzeTimeout(() => { resolve('Hier ist die Rückgabe von p1') }, 1000) }) const p2 = neues Versprechen((lösen, ablehnen) => { console.log('Hier ist p2') setzeTimeout(() => { resolve('Hier ist die Rückgabe von p2') }, 1000) }) Versprechen.alles([p1, p2]).dann((val) => { console.log(Wert) konsole.timeEnd() }) } ZusammenfassenDieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können! Das könnte Sie auch interessieren:
|
>>: Grundkenntnisse der MySQL-Datenbank
Dieser Artikel beschreibt anhand eines Beispiels ...
Viele Webseiten haben kleine Dreiecke in ihren Na...
1. Warum diesen Artikel schreiben? Sie haben sich...
Problem: vue-cil3 wird mit Warnungen ausgeführt, ...
Inhaltsverzeichnis Standardausführungsprozess Opt...
Inhaltsverzeichnis 1. Was ist der Lebenszyklus 2....
Inhaltsverzeichnis Vorwort 1. Rekursive Komponent...
Gute Datenbankspezifikationen tragen dazu bei, di...
Sie können die Trigger-Methode verwenden. In JavaS...
1: django-admin.py startproject Projektname 2: CD...
a href="#"> Nach dem Klicken auf den ...
1. Installationsumgebung Hier finden Sie auch ein...
Inhaltsverzeichnis Was ist eine Voranalyse? Der U...
1. Es können nur chinesische Schriftzeichen eingeg...
1. Textformatierung: Dieses Beispiel zeigt, wie T...