Sobes.tech
Junior — Middle

Mi a különbség az async/await és a Promise konstrukciók között, amikor aszinkron kódot dolgozunk JavaScriptben?

sobes.tech MI

Válasz az MI-től

Promise egy objektum, amely egy aszinkron művelet eredményét képviseli, és a jövőben teljesíthető vagy elutasítható. Lehetővé teszi a kezelők regisztrálását a then() és catch() metódusokon keresztül.

Az async/await a Promise feletti szintaktikus cukor, amely lehetővé teszi az aszinkron kód szinkron stílusban történő írását, így olvashatóbbá és könnyebben hibakereshetővé válik.

Fő különbségek:

  • A Promise láncokat igényel a eredmények és hibák kezeléséhez.
  • Az async/await lehetővé teszi az await kulcsszavak használatát a Promise eredményének várakoztatására egy aszinkron függvényen belül.

Példa:

// Promise
fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

// async/await
async function fetchData() {
  try {
    const response = await fetch(url);
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}
fetchData();

Így az async/await egyszerűsíti a Promise-szal való munkát, lineárisabbá és érthetőbbé téve a kódot.