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
pendinglafulfilledsaurejectedare 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));