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ólfulfilledvagyrejectedá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));