Middle
Jak funguje Promise v JavaScriptu?
sobes.tech AI
Odpověď od AI
- Objekt představující možný konec (nebo selhání) asynchronní operace a její výslednou hodnotu.
- Stavy promise:
pending: počáteční stav, ani splněn, ani zamítnut.fulfilled: znamená, že operace byla úspěšně dokončena.rejected: znamená, že operace skončila chybou.
- Přechod z
pendingdofulfilledneborejectednastává pouze jednou a je nevratný. - Metody:
.then(onFulfilled, onRejected): přijímá dvě callback funkce. První (onFulfilled) je volána při úspěchu, druhá (onRejected) při chybě. Obě argumenty jsou volitelné. Vrací nový promise..catch(onRejected): zkrácená forma.then(null, onRejected). Používá se k ošetření chyb. Vrací nový promise..finally(onFinally): je volána bez ohledu na výsledek promise (úspěch nebo chyba). Užitečné pro čištění zdrojů. Vrací nový promise.
- Vytvoření promise:
new Promise((resolve, reject) => {
// Asynchronní operace
const success = true;
if (success) {
resolve("Operace úspěšná!"); // Přechod do stavu fulfilled
} else {
reject("Něco se pokazilo..."); // Přechod do stavu rejected
}
});
- Řetězení promise:
.then(),.catch(),.finally()vracejí promise, což umožňuje vytváření řetězců pro sekvenční provádění asynchronních operací.
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Chyba:', error));