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
Seit ich die offizielle Version von IE8.0 install...
Vorwort: Wenn Sie eine SQL-Anweisung in MySQL aus...
Inhaltsverzeichnis Was ist Abflachung? Rekursion ...
Drei Möglichkeiten zum Festlegen von Rahmen in HT...
Bei den vorherigen Artikeln handelte es sich um m...
1. Installieren Sie Zabbix Agent, um den lokalen ...
pt-Herzschlag Wenn die Datenbank zwischen Master ...
Inhaltsverzeichnis 1. Was ist Set 2. Konstruktor ...
Vue-Router-Übergänge sind eine schnelle und einfa...
Erste Schritte mit JavaScript JavaScript ist eine...
Ubuntu 15.04 öffnet den MySQL-Remote-Port 3306. A...
Installieren Sie vsftpd $ sudo apt-get installier...
Docker-Container-Verbindung 1. Netzwerk-Port-Mapp...
Fügen Sie dem img-Bild-Tag ein Alt-Attribut hinzu?...
In diesem Artikelbeispiel wird der spezifische Co...