Sobes.tech
Junior

Mis vahe on Promise kasutamise ja async/await süntaksi vahel?

sobes.tech AI

Vastus AI-lt

Promise on objekt, mis peegeldab lõplikku asünkroonse operatsiooni lõpetamist või tagasilükkamist. See haldab asünkroonseid vooge, kasutades .then() ja .catch() tagasisidefunktsioone.

async/await on Promise-i sünteks, mis muudab asünkroonse koodi loetavamaks ja sarnasemaks sünkrontsele. Funktsioon, mis on märgitud async, tagastab alati Promise. await operaatorit saab kasutada ainult async funktsiooni sees ning see peatab funktsiooni täitmise kuni Promise täidetakse või lükatakse tagasi, seejärel tagastab selle tulemuse või viskab erandi.

Aspekt Promise Async/Await
Loetavus Vajab .then() ja .catch() ahelasid Sarnane sünkrontsele koodile, lineaarne voog
Vigade käsitlemine Kasutab .catch() Kasutab try...catch plokke
Täitmise voog Hallatakse callback-idega Peatab/taasaktiveerib funktsiooni
Tagastatav väärtus Promise Promise (async funktsioonile) või Promise tulemus (await)
Sõltuvus Iseseisev mehhanism Põhineb Promise'il

Näide Promise-ga:

// Näide Promise'iga
function fetchDataPromise() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("Andmed saadud (Promise)");
    }, 1000);
  });
}

fetchDataPromise()
  .then(data => console.log(data))
  .catch(error => console.error(error));

Näide async/await-ga:

// Näide async/await'iga
function fetchDataAsync() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("Andmed saadud (async/await)");
    }, 1000);
  });
}

async function showData() {
  try {
    const data = await fetchDataAsync();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

showData();