Sobes.tech
Middle

Cum funcționează Promise în JavaScript?

sobes.tech AI

Răspuns de la AI

  • Obiect care reprezintă o posibilă finalizare (sau eșec) a unei operațiuni asincrone și valoarea sa rezultată.
  • Stările promisiunii:
    • pending: stare inițială, nici îndeplinită, nici respinsă.
    • fulfilled: indică faptul că operațiunea a fost finalizată cu succes.
    • rejected: indică faptul că operațiunea s-a încheiat cu o eroare.
  • Trecerea de la pending la fulfilled sau rejected are loc o singură dată și este ireversibilă.
  • Metode:
    • .then(onFulfilled, onRejected): acceptă două funcții callback. Prima (onFulfilled) este apelată la succes, a doua (onRejected) în caz de eroare. Ambele argumente sunt opționale. Returnează o nouă promisiune.
    • .catch(onRejected): formă scurtă de .then(null, onRejected). Este folosită pentru tratarea erorilor. Returnează o nouă promisiune.
    • .finally(onFinally): este apelată indiferent de rezultatul promisiunii (succes sau eroare). Utilă pentru curățarea resurselor. Returnează o nouă promisiune.
  • Crearea unei promisiuni:
new Promise((resolve, reject) => {
  // Operație asincronă
  const success = true;
  if (success) {
    resolve("Operație reușită!"); // Trecere în stare fulfilled
  } else {
    reject("Ceva nu a mers bine..."); // Trecere în stare rejected
  }
});
  • Lanțuri de promisiuni: .then(), .catch(), .finally() returnează promisiuni, permițând crearea de lanțuri pentru executarea secvențială a operațiunilor asincrone.
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Eroare:', error));