𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗺𝗶𝘀𝗲𝘀
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.
