Sobes.tech
Middle

Wie funktioniert Promise in JavaScript?

sobes.tech KI

Antwort von AI

  • Objekt, das eine mögliche endgültige Beendigung (oder Fehler) einer asynchronen Operation und deren resultierenden Wert darstellt.
  • Zustände eines Promises:
    • pending: Anfangszustand, weder erfüllt noch abgelehnt.
    • fulfilled: bedeutet, dass die Operation erfolgreich abgeschlossen wurde.
    • rejected: bedeutet, dass die Operation mit einem Fehler beendet wurde.
  • Der Übergang von pending zu fulfilled oder rejected erfolgt nur einmal und ist unumkehrbar.
  • Methoden:
    • .then(onFulfilled, onRejected): Nimmt zwei Callback-Funktionen. Die erste (onFulfilled) wird bei Erfolg aufgerufen, die zweite (onRejected) bei Fehler. Beide Argumente sind optional. Gibt ein neues Promise zurück.
    • .catch(onRejected): Kurzform von .then(null, onRejected). Wird zur Fehlerbehandlung verwendet. Gibt ein neues Promise zurück.
    • .finally(onFinally): Wird unabhängig vom Ergebnis des Promises aufgerufen (Erfolg oder Fehler). Nützlich zum Ressourcenbereinigen. Gibt ein neues Promise zurück.
  • Erstellung eines Promises:
new Promise((resolve, reject) => {
  // Asynchrone Operation
  const success = true;
  if (success) {
    resolve("Operation erfolgreich!"); // Übergang in den Zustand fulfilled
  } else {
    reject("Etwas ist schief gelaufen..."); // Übergang in den Zustand rejected
  }
});
  • Verkettung von Promises: .then(), .catch(), .finally() geben Promises zurück, was die Erstellung von Ketten für sequenzielle asynchrone Operationen ermöglicht.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Fehler:', error));