Was ist ein Promise?
Ein Promise ist ein Objekt, das den Status einer asynchronen API-Operation darstellt. Der Status eines API-Requests, kann entweder pending, fulfilled oder rejected sein.

Promise – Promises bei der API-Programmierung
Promises liefern Status-Informationen an eine Webanwendung
Somit liefern Promises einer WebApp und Softwareentwicklern die eine API nutzen, die Information zum Status ihres API-Request. Konkret erhält eine Anwendung wie eine WebApp oder Progressive Web App (PWA) die Antwort, ob eine gesendete API-Anfrage, ausstehend, beendet oder gescheitert ist.
Damit sind Promises bedingte Ausdrücke oder Conditions bei der Programmierung von Software.
Promise-Objekt
Das Promise-Objekt repräsentiert also den möglichen Abschluss (oder das Scheitern) von asynchronen Operationen und den daraus resultierenden Werten.
Wie funktionieren Promises?
Damit sind Promises im Wesentlichen Versprechen in Form eines zurückgegebenen Objekts, an das diese als Response an einen API-Call anhängen, anstatt Requests an eine Funktion zu übergeben.
Beispiel für Promise und Callback-Funktion
Stelle Dir dazu am besten eine Funktion createAudioFileAsync() vor, die asynchron eine Audiodatei aus einem Konfigurationsdatensatz und zwei Callback-Funktionen erzeugt: Die ein Callback-Funktion wird aufgerufen, wenn die Audiodatei erfolgreich erstellt wurde, und die andere Callback-Funktion, wenn ein Fehler auftritt.
Promise-States – Mögliche Promise-Werte
Ein Promise hat immer einer der folgenden States:
- pending: Ausgangszustand, weder erfüllt noch abgelehnt.
- fulfilled: bedeutet, dass der Vorgang erfolgreich abgeschlossen wurde
- rejected: der Vorgang ist fehlgeschlagen
Promise als API-Proxy
Ein Promise kann auch als Proxy für einen Wert verstanden werden, der zum Zeitpunkt wenn das Promise erstellt wird, nicht bekannt ist. Damit ermöglichen Promises Softwareentwickler*innen Handler mit dem eventuellen Erfolgswert oder Fehlergrund einer asynchronen Aktion zu verknüpfen.

Promises – Promise als API-Proxy
Werte aus asynchronen Methoden wie bei synchronen Methoden nutzen
Dadurch können asynchrone Methoden Werte wie synchrone Methoden zurückgeben: Anstatt sofort den endgültigen Wert zurückzugeben, gibt die asynchrone Methode ein Versprechen zurück, den Wert zu einem späteren Zeitpunkt zu liefern.
Usability mit Promise-States verbessern
Promise-States lassen sich gezielt dazu nutzen, um die User Experience von Webanwendungen und Apps zu verbessern. Hierbei spielen die Konzepte der synchronen Kommunikation und der asynchronen Kommunikation beim Transfer von Daten eine zentrale Rolle.

Pending – Usability mit Promise States verbessern
Mit dem planvollen Umgang mit einem Promise-State in Verbindung mit entsprechender Anzeige in einer Webanwendung oder App wissen Anwender warum eine Funktion nicht funktioniert oder zumindest dass aktuell eine Antwort von einem Service aussteht. So simpel es klingt, so häufig werden solche trivialen Meldungen in Anwendungen oft übersehen und nicht implementiert…
Unverzichtbar: Validierung von States bei der Softwareentwicklung
Die Validierung von States ist eine sehr wichtige Tätigkeit, die Du bereits frühzeitig bei der Entwicklung von Prototypen und bei der Softwareentwicklung berücksichtigen solltest.

