Sobes.tech
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 pending uz fulfilled vai rejected notiek 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));