Heim >Web-Frontend >js-Tutorial >Versprechen in Javascript
stellt einen Wert dar, der jetzt, in der Zukunft oder nie verfügbar sein kann.
Versprechen Lebenszyklus:
Ausstehend: Die Funktion beginnt zu funktionieren.
Erfüllt: Der Vorgang wurde erfolgreich abgeschlossen und wir haben einen Ergebniswert.
Abgelehnt: Der Vorgang ist fehlgeschlagen und wir haben ein Fehlerobjekt.
Syntax eines Versprechens:
Ein Versprechen wird mit dem neuen Promise-Konstruktor erstellt, der eine Funktion mit zwei Argumenten annimmt: auflösen und ablehnen.
Im Codeausschnitt haben wir eine Funktion namens getUser, die ein neues Promise zurückgibt (ein Promise-Objekt, das über Methoden zur Verarbeitung asynchroner Vorgänge verfügt).
Im Promise-Konstruktor haben wir eine setTimeout-Funktion, die einen asynchronen Vorgang simuliert, beispielsweise das Abrufen von Daten aus einer Datenbank. Dem Versprechen werden zwei Schlüsselmethoden übergeben:
resolve: Dies wird aufgerufen, wenn der Vorgang erfolgreich ist. In diesem Fall, wenn id === 1, wird ein Scheinbenutzerobjekt zurückgegeben { id: 1, name: „Diana“, email: „Diana@test.com“ }.
Ablehnen: Dies wird aufgerufen, wenn der Vorgang fehlschlägt. Wenn die ID nicht 1 ist, wird das Versprechen mit der Fehlermeldung „Benutzer nicht gefunden…“ abgelehnt.
Die Auflösungs- und Ablehnungsfunktionen fungieren im Kontext von Versprechen wie Rückgabeanweisungen und ermöglichen es dem Aufrufer, den Erfolg oder Misserfolg des Vorgangs zu steuern.
Promises können verkettet werden, sodass Sie eine Reihe asynchroner Vorgänge nacheinander ausführen können:
In diesem Beispiel verketten wir mehrere Versprechen, um das Abrufen von Daten Schritt für Schritt zu simulieren.
Zuerst rufen wir getUser(1) auf, um die Benutzerdaten abzurufen. Wenn es funktioniert, fahren wir mit dem nächsten Schritt fort.
Zweitens nehmen wir die user.id und verwenden sie, um die Bestellungen für diesen Benutzer abzurufen, indem wir getOrders(user.id) aufrufen.
-Drittens wählen wir die zweite Bestellung (orders[1]) aus der Liste aus und rufen ihre Details mit getOrderDetails(orders[1]) ab.
Wenn zu irgendeinem Zeitpunkt etwas schief geht (z. B. wenn der Benutzer nicht gefunden wird oder Bestellungen fehlen), wird der Fehler im .catch()-Block abgefangen und angezeigt.
Ergebnis:
Dieser Ansatz macht es einfacher, mit asynchronen Aufgaben sauber und Schritt für Schritt zu arbeiten, anstatt unordentlichen Code zu haben.
Promise.all(): Führt mehrere Versprechen parallel aus und wartet, bis alle gelöst sind.
Promise.all([promise1, promise2]) .then((results) => { console.log(results); // Array of all fulfilled values });
Beispiel:
(Ich empfehle, diesen Ansatz mit Rückrufen zu lesen und zu vergleichen)
Das obige ist der detaillierte Inhalt vonVersprechen in Javascript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!