Sobes.tech
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 pending olekusse fulfilled või rejected toimub ü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));