Heim  >  Artikel  >  Web-Frontend  >  Versprechen in Javascript

Versprechen in Javascript

Barbara Streisand
Barbara StreisandOriginal
2024-10-20 14:34:02417Durchsuche

Versprechen

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.

Promise in Javascript
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.

Versprechen verketten

Promises können verkettet werden, sodass Sie eine Reihe asynchroner Vorgänge nacheinander ausführen können:

Promise in Javascript

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.

Einfache Aufschlüsselung:

  • Sie fragen nach einem Benutzer.
  • Wenn Sie den Benutzer finden, fragen Sie nach seinen Bestellungen.
  • Wenn Sie die Bestellungen erhalten, fragen Sie nach Details zu einer der Bestellungen.
  • Wenn etwas schief geht (z. B. wenn der Benutzer oder die Bestellungen nicht gefunden werden), wird ein Fehler angezeigt.

Ergebnis:

Promise in Javascript

Dieser Ansatz macht es einfacher, mit asynchronen Aufgaben sauber und Schritt für Schritt zu arbeiten, anstatt unordentlichen Code zu haben.

Promise-Methoden:

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:

Promise in Javascript

(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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn