𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀

Ein Promise repräsentiert das Ergebnis einer asynchronen Aufgabe.

Sie verwenden Promises für API-Aufrufe, Datenbankabfragen und das Lesen von Dateien.

Ein Promise hat drei Zustände:

  • Pending: Die Aufgabe läuft noch.
  • Fulfilled: Die Aufgabe wurde erfolgreich abgeschlossen.
  • Rejected: Die Aufgabe ist mit einem Fehler fehlgeschlagen.

Die Struktur sieht so aus:

const promise = new Promise((resolve, reject) => { // Der Executor wird sofort ausgeführt });

Sie verarbeiten die Ergebnisse mit diesen Methoden:

  • .then(): Wird ausgeführt, wenn das Promise erfolgreich ist.
  • .catch(): Wird ausgeführt, wenn das Promise fehlschlägt.
  • .finally(): Wird ausgeführt, wenn die Aufgabe endet, unabhängig vom Ergebnis.

Wichtige Regeln, die man sich merken sollte:

  • Das erste Ergebnis gewinnt. Wenn Sie resolve() und dann reject() aufrufen, gewinnt resolve.
  • Die Executor-Funktion wird synchron ausgeführt.
  • Die Verwendung von async und await macht Ihren Code lesbarer als die Verwendung von .then().

Umgang mit mehreren Promises:

  • Promise.all(): Dies folgt einem Fail-Fast-Ansatz. Wenn ein Promise fehlschlägt, schlägt die gesamte Gruppe fehl.
  • Promise.allSettled(): Dies wartet, bis jedes Promise abgeschlossen ist. Es gibt die Ergebnisse zurück, selbst wenn einige Aufgaben fehlschlagen.

Zusammenfassung:

  • Promise: Ein Handler für asynchrone Ergebnisse.
  • resolve: Markiert den Erfolg.
  • reject: Markiert das Scheitern.
  • async/await: Eine sauberere Art, Promises zu schreiben.
  • Promise.all: Stoppt beim ersten Fehler.
  • Promise.allSettled: Schließt alle Aufgaben ab.

Quelle: https://dev.to/malik786/javascript-promises-2hn4