Promise būsenos JavaScript
Promise gali būti vienoje iš trijų būsenų. Sukuriant Promise yra laukimo būsenoje (pending), o vėliau gali tapti įvykdytu (fulfilled), grąžinant gautą rezultatą, arba atmestu (rejected), grąžinant atmetimo priežastį. Galite pamatyti perėjimą iš vienos būsenos į kitą, paleisdami tokį kodą:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false; // nustatykite true arba false
if (!isError) {
resolve([1, 2, 3, 4, 5]);
} else {
reject('klaida promise');
}
}, 3000);
});
setInterval(function() {
console.log(promise); // kas sekundę išvedame promise į konsolę
}, 1000);
Atminkite, kad būsenos fulfilled ir rejected yra nepakitusios: jei promise perėjo į vieną iš šių būsenų, jis nebegalės pereiti į kitą. Pažiūrėkime pavyzdžiu. Toliau pateiktame kode reject iškvietimas įvyks anksčiau, todėl resolve iškvietimas bus ignoruojamas:
let promise = new Promise(function(resolve, reject) {
setTimeout(() => reject(new Error('klaida')), 1000);
setTimeout(() => resolve('ignoruojama'), 2000);
});
Sukurkite promise, kuris bus sėkmingai įvykdytas po tam tikro laiko. Išveskite jį į konsolę ir ištirkite jo pradinę būseną ir užbaigtą būseną.
Sukurkite promise, kuris bus atmestas po tam tikro laiko. Išveskite jį į konsolę ir ištirkite jo pradinę būseną ir užbaigtą būseną.