Middle
Kuidas töötab Promise JavaScriptis?
sobes.tech AI
Vastus AI-lt
- Objekt, mis esindab võimalikku lõplikku lõpetamist (või tõrke) asünkroonses operatsioonis ja selle tulemust.
- Promissi olekud:
pending: algolek, ei ole veel täidetud ega tagasi lükatud.fulfilled: tähendab, et operatsioon on edukalt lõpetatud.rejected: tähendab, et operatsioon lõppes veaga.
- Muutumine olekust
pendingolekussefulfilledvõirejectedtoimub üks kord ja on pöördumatu. - Meetodid:
.then(onFulfilled, onRejected): Võtab vastu kaks tagasikutsumise funktsiooni. Esimene (onFulfilled) kutsutakse välja edukal lõpetamisel, teine (onRejected) - veaga. Mõlemad argumendid on valikulised. Tagastab uue promissi..catch(onRejected): Lühend vormis.then(null, onRejected). Kasutatakse vigade käsitlemiseks. Tagastab uue promissi..finally(onFinally): Kutsutakse välja sõltumata promissi tulemusest (edu või viga). Kasulik ressursside puhastamiseks. Tagastab uue promissi.
- Promissi loomine:
new Promise((resolve, reject) => {
// Asünkroonne operatsioon
const success = true;
if (success) {
resolve("Operatsioon õnnestus!"); // Muutub olekuks fulfilled
} else {
reject("Midagi läks valesti..."); // Muutub olekuks rejected
}
});
- Promisside ahelad:
.then(),.catch(),.finally()tagastavad promisse, mis võimaldab luua ahelaid järjestikuste asünkroonsete operatsioonide täitmiseks.
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Viga:', error));