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
Webdesign: Je nach persönlichen Vorlieben und Inha...
Als ich heute einen Docker-Container erstellt hab...
Inhaltsverzeichnis Dokumentobjektmodell (DOM) DOM...
Vor Kurzem musste ich das Projekt für die Mitglie...
RedHat6.5 Installation MySQL5.7 Tutorial teilen, ...
Inhaltsverzeichnis Hintergrund Umsetzungsideen Er...
Inhaltsverzeichnis 1. Index-Grundlagen 1.1 Einlei...
Eine kurze Erläuterung des Navigationsfensters in...
Inhaltsverzeichnis 2. Bewährte Methoden 2.1 Am Le...
Code kopieren Der Code lautet wie folgt: <span...
Für das, was ich heute schreiben werde, lief das ...
So implementieren Sie das MySQL-Umschalten des Da...
1. Überprüfung Der Pufferpool wird nach dem Start...
Was ist ein Generator? Ein Generator ist ein Code...
Inhaltsverzeichnis Objekt Objektdefinition Iterie...