A Promise állapotai JavaScriptben
Egy Promise három állapot egyikében lehet. Létrehozáskor a Promise függő állapotban van (pending), majd teljesítetté válhat (fulfilled), visszaadva a kapott eredményt, vagy elutasítottá (rejected), visszaadva az elutasítás okát. Megfigyelheti az átmenetet egyik állapotból a másikba, ha futtatja a következő kódot:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false; // állítsa be true vagy false értékre
if (!isError) {
resolve([1, 2, 3, 4, 5]);
} else {
reject('error in promise');
}
}, 3000);
});
setInterval(function() {
console.log(promise); // minden másodpercben kiírjuk a promise-ot a konzolra
}, 1000);
Vegye figyelembe, hogy a fulfilled és rejected állapotok változatlanok: ha egy promise ezen állapotok egyikébe kerül, akkor már nem tud áttérni a másikba. Nézzük meg egy példán. A következő kódban a reject hívás történik előbb, ezért a resolve hívás figyelmen kívül marad:
let promise = new Promise(function(resolve, reject) {
setTimeout(() => reject(new Error('error')), 1000);
setTimeout(() => resolve('ignored'), 2000);
});
Készítsen egy promise-ot, amely bizonyos idő elteltével sikeresen teljesül. Írja ki a konzolra és tanulmányozza a kezdeti és a befejezett állapotát.
Készítsen egy promise-ot, amely bizonyos idő elteltével sikertelenül zárul. Írja ki a konzolra és tanulmányozza a kezdeti és a befejezett állapotát.