Promise stāvokļi JavaScript
Promise var atrasties vienā no trim stāvokļiem. Izveidojot promise atrodas gaidīšanas stāvoklī (pending), un pēc tam var kļūt izpildīts (fulfilled), atgriežot iegūto rezultātu, vai noraidīts (rejected), atgriežot atteikuma iemeslu. Jūs varat redzēt pāreju no viena stāvokļa uz citu, palaižot šādu kodu:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false; // iestatiet vai nu true, vai false
if (!isError) {
resolve([1, 2, 3, 4, 5]);
} else {
reject('kļūda promise');
}
}, 3000);
});
setInterval(function() {
console.log(promise); // katru sekundi izvadām promise konsolē
}, 1000);
Ņemiet vērā, ka stāvokļi fulfilled un rejected ir nemainīgi: ja promise pārgāja vienā no šiem stāvokļiem, tad tas vairs nevarēs pāriet citā. Apskatīsim ar piemēru. Šajā kodā izsaukums reject notiks agrāk, tāpēc izsaukums resolve tiks ignorēts:
let promise = new Promise(function(resolve, reject) {
setTimeout(() => reject(new Error('kļūda')), 1000);
setTimeout(() => resolve('ignorēts'), 2000);
});
Izveidojiet promise, kas izpildīsies veiksmīgi pēc kāda laika. Izvadiet to konsolē un izpētiet tā sākotnējo stāvokli un pabeigto.
Izveidojiet promise, kas izpildīsies neveiksmīgi pēc kāda laika. Izvadiet to konsolē un izpētiet tā sākotnējo stāvokli un pabeigto.