Sobes.tech
Middle

Jak funguje Promise v JavaScriptu?

sobes.tech AI

Odpověď od AI

  • Objekt představující možný konec (nebo selhání) asynchronní operace a její výslednou hodnotu.
  • Stavy promise:
    • pending: počáteční stav, ani splněn, ani zamítnut.
    • fulfilled: znamená, že operace byla úspěšně dokončena.
    • rejected: znamená, že operace skončila chybou.
  • Přechod z pending do fulfilled nebo rejected nastává pouze jednou a je nevratný.
  • Metody:
    • .then(onFulfilled, onRejected): přijímá dvě callback funkce. První (onFulfilled) je volána při úspěchu, druhá (onRejected) při chybě. Obě argumenty jsou volitelné. Vrací nový promise.
    • .catch(onRejected): zkrácená forma .then(null, onRejected). Používá se k ošetření chyb. Vrací nový promise.
    • .finally(onFinally): je volána bez ohledu na výsledek promise (úspěch nebo chyba). Užitečné pro čištění zdrojů. Vrací nový promise.
  • Vytvoření promise:
new Promise((resolve, reject) => {
  // Asynchronní operace
  const success = true;
  if (success) {
    resolve("Operace úspěšná!"); // Přechod do stavu fulfilled
  } else {
    reject("Něco se pokazilo..."); // Přechod do stavu rejected
  }
});
  • Řetězení promise: .then(), .catch(), .finally() vracejí promise, což umožňuje vytváření řetězců pro sekvenční provádění asynchronních operací.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Chyba:', error));