Was ist ein Promise()?

Verständnis von JavaScript Promise()

Ein Promise() in JavaScript ist ein mächtiges Werkzeug, welches zur Verwaltung des asynchronen Kontrollflusses in der Programmierung verwendet wird. Das Konzept eines Promise() kann als eine Repräsentation einer Operation verstanden werden, die in der Zukunft abgeschlossen werden soll - daher der Name 'Versprechen'.

Ein Promise kann sich in einem von drei Zuständen befinden:

  • Pending: Die Operation ist noch nicht abgeschlossen.
  • Fulfilled: Die Operation wurde erfolgreich abgeschlossen.
  • Rejected: Die Operation ist fehlgeschlagen.

Bevor ein Promise abgeschlossen wird, ist es im Zustand 'pending'. Sobald es abgeschlossen ist, wechselt es entweder in den Zustand 'fulfilled' oder 'rejected'. Einmal in einem dieser Zustände, kann ein Promise seinen Zustand nicht mehr ändern.

In der Praxis könnte ein Promise zum Beispiel beim Abrufen von Daten von einem Server verwendet werden. In diesem Fall wäre der Promise 'pending', während die Daten abgerufen werden. Wenn die Daten erfolgreich abgerufen wurden, würde der Promise 'fulfilled' sein. Wenn es jedoch beim Abruf der Daten zu einem Fehler kommt, wäre der Promise 'rejected'.

Hier ist ein einfaches Beispiel für einen Promise:

let myFirstPromise = new Promise((resolve, reject) => {
  // eine asynchrone Operation wie ein HTTP Request
  let data = true; // wir gehen davon aus, dass die Daten korrekt abgerufen wurden

  if (data) {
    resolve('Daten erfolgreich abgerufen!');
  } else {
    reject('Fehler beim Abrufen der Daten!');
  }
});

myFirstPromise.then((successMessage) => {
  console.log(successMessage);
}).catch((errorMessage) => {
  console.log(errorMessage);
});

In diesem Beispiel wird ein neuer Promise erstellt, der eine asynchrone Operation darstellt. Wenn die Daten erfolgreich abgerufen wurden (was in diesem Beispiel immer der Fall ist), wird die resolve-Funktion aufgerufen und das Erfolgsmeldung weitergegeben. Wenn es zu einem Fehler kommt, wird die reject-Funktion aufgerufen und die Fehlermeldung weitergegeben.

Der Aufruf von .then() auf dem Promise ermöglicht es uns, eine Callback-Funktion anzugeben, die ausgeführt wird, wenn der Promise erfüllt wird. Analog dazu wird durch den Aufruf von .catch() eine Funktion bereitgestellt, die ausgeführt wird, wenn der Promise abgelehnt wird.

Das Verstehen und korrekte Einsetzen von Promises ist entscheidend für das Arbeiten mit asynchronem Code in JavaScript und kann dazu beitragen, den Code besser lesbar und wartbar zu machen. Es ist wichtig zu verstehen, dass ein Promise ein Versprechen für zukünftige Ergebnisse ist und nicht ein sofortiger Wert, und das adäquate Handhaben der Zustände von Promises hilft dabei, Nebenläufigkeitsprobleme und Timing-Probleme besser zu handhaben.

Finden Sie das nützlich?