Middle
Kā darbojas Promise JavaScript?
sobes.tech AI
Atbilde no AI
- Objekts, kas pārstāv iespējamo beigu (vai neveiksmes) asinhronas operācijas un tās rezultējošo vērtību.
- Solījuma stāvokļi:
pending: sākotnējais stāvoklis, neizpildīts neatsakīts.fulfilled: norāda, ka operācija ir veiksmīgi pabeigta.rejected: norāda, ka operācija ir beigusies ar kļūdu.
- Pāreja no
pendinguzfulfilledvairejectednotiek tikai vienu reizi un ir neatgriezeniska. - Metodes:
.then(onFulfilled, onRejected): pieņem divas atpakaļzvanīšanas funkcijas. Pirmā (onFulfilled) tiek izsaukta, ja operācija ir veiksmīga, otra (onRejected) – kļūdas gadījumā. Abi argumenti ir opcionali. Atgriež jaunu solījumu..catch(onRejected): īsā forma.then(null, onRejected). Izmanto kļūdu apstrādei. Atgriež jaunu solījumu..finally(onFinally): tiek izsaukts neatkarīgi no solījuma rezultāta (veiksme vai kļūda). Noderīgs resursu tīrīšanai. Atgriež jaunu solījumu.
- Solījuma izveide:
new Promise((resolve, reject) => {
// Asinhroniska operācija
const success = true;
if (success) {
resolve("Operācija veiksmīga!"); // pāreja uz `fulfilled` stāvokli
} else {
reject("Kas nogāja greizi..."); // pāreja uz `rejected` stāvokli
}
});
- Solījumu ķēdēšana:
.then(),.catch(),.finally()atgriež solījumus, ļaujot veidot ķēdes asinhrono operāciju secīgai izpildei.
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Kļūda:', error));