Sobes.tech
Middle

Hogyan működik a Promise a JavaScriptben?

sobes.tech MI

Válasz az MI-től

  • Olyan objektum, amely egy aszinkron művelet lehetséges végső befejezését (vagy hibáját) és annak eredményértékét képviseli.
  • Egy promise állapotai:
    • pending: kezdeti állapot, nem teljesített vagy elutasított.
    • fulfilled: azt jelzi, hogy a művelet sikeresen befejeződött.
    • rejected: azt jelzi, hogy a művelet hibával végződött.
  • A pending állapotból fulfilled vagy rejected állapotba való átmenet egyszer történik és visszafordíthatatlan.
  • Módszerek:
    • .then(onFulfilled, onRejected): két callback függvényt fogad. Az első (onFulfilled) siker esetén hívódik, a második (onRejected) hiba esetén. Mindkettő opcionális. Új promise-t ad vissza.
    • .catch(onRejected): a .then(null, onRejected) rövidítése. Hibakezelésre használják. Új promise-t ad vissza.
    • .finally(onFinally): függetlenül a promise eredményétől (siker vagy hiba) hívódik. Erőforrások tisztítására hasznos. Új promise-t ad vissza.
  • Promise létrehozása:
new Promise((resolve, reject) => {
  // Aszinkron művelet
  const success = true;
  if (success) {
    resolve("Művelet sikeres!"); // Átmenet fulfilled állapotba
  } else {
    reject("Valami baj történt..."); // Átmenet rejected állapotba
  }
});
  • Promise láncolás: .then(), .catch(), .finally() promise-t ad vissza, lehetővé téve láncok létrehozását szekvenciális aszinkron műveletekhez.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Hiba:', error));