Sobes.tech
Junior

Räägi mulle JavaScripti async/await konstruktsioonist.

sobes.tech AI

Vastus AI-lt

async/await – see on süntaksisuhkur, mis on mõeldud lihtsamaks asünkroonse koodi kirjutamiseks, mis näeb välja nagu sünkrone.

Funktsioon, millele on märgitud sõnaga async, tagastab alati promise'i. async-funktsiooni sees saab kasutada sõna await.

Operaator await kasutatakse promise'i väljakutse ees. See peatab async-funktsiooni täitmise kuni promise täidetakse (resolved) või lükatakse tagasi (rejected). Promise'i täitmise tulemus (edu või viga) tagastatakse await-operaatoriga.

Kui promise, mille ees on await, lükatakse tagasi, põhjustab see erandi, mida saab püüda try...catch ploki abil.

// Näide async/await kasutamisest
async function fetchData() {
  try {
    // Ootame asünkroonse operatsiooni (näiteks API päringu) täitmist
    const response = await fetch('https://api.example.com/data');
    // Vasta JSON-ks parsimine
    const data = await response.json();
    // Saadud andmete väljastamine
    console.log(data);
  } catch (error) {
    // Võimaliku vea püüdmine
    console.error('Viga andmete saamisel:', error);
  }
}

// Kutsume välja async funktsiooni
fetchData();

// Async funktsioon, mis tagastab promise'i
async function getValue() {
  return 10; // See on automaatselt pakitud Promise.resolve(10)
}

getValue().then(value => console.log(value)); // Näitab 10

async/await eelised:

  • Koodilugemise lihtsus: Asünkroonne kood näeb välja sarnasem kui sünkrone.
  • Vigade käsitlemine: On mugavam kasutada standardseid try...catch plokke.
  • Vähem sügavust: Vältida "kõnekaevu" või pikki .then() ahelasid.

Pea meeles, et await saab kasutada ainult async funktsioonide sees.