Sobes.tech
Middle

Ako funguje Promise v JavaScripte?

sobes.tech AI

Odpoveď od AI

  • Objekt, ktorý predstavuje možný konečný záver (alebo zlyhanie) asynchrónnej operácie a jej výslednú hodnotu.
  • Stavové stavy promise:
    • pending: počiatočný stav, ani splnený, ani zamietnutý.
    • fulfilled: znamená, že operácia bola úspešne dokončená.
    • rejected: znamená, že operácia skončila chybou.
  • Prechod z pending do fulfilled alebo rejected nastáva iba raz a je nevratný.
  • Metódy:
    • .then(onFulfilled, onRejected): prijíma dve callback funkcie. Prvá (onFulfilled) je volaná pri úspechu, druhá (onRejected) pri chybe. Obe argumenty sú voliteľné. Vráti nový promise.
    • .catch(onRejected): skrátená forma .then(null, onRejected). Používa sa na spracovanie chýb. Vráti nový promise.
    • .finally(onFinally): je volaná bez ohľadu na výsledok promise (úspech alebo chyba). Užitečné na čistenie zdrojov. Vráti nový promise.
  • Vytvorenie promise:
new Promise((resolve, reject) => {
  // Asynchrónna operácia
  const success = true;
  if (success) {
    resolve("Operácia úspešná!"); // prechod do stavu fulfilled
  } else {
    reject("Niečo sa pokazilo..."); // prechod do stavu rejected
  }
});
  • Reťazenie promise: .then(), .catch(), .finally() vracajú promise, čo umožňuje vytváranie reťazcov pre sekvenčné vykonávanie asynchrónnych operácií.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Chyba:', error));