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
pendingdofulfilledaleborejectednastá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));