Sobes.tech
Junior

Wat is het verschil tussen async/await en Promise?

sobes.tech AI

Antwoord van AI

async/await is syntactic sugar over promises. Het stelt je in staat om asynchrone code te schrijven in een meer leesbare, synchronistische stijl, door gebruik te maken van de sleutelwoorden async voor functies die await gebruiken om te wachten op de resolutie van een belofte. Promises zijn objecten die de uiteindelijke voltooiing (of mislukking) van een asynchrone operatie en haar resulterende waarde vertegenwoordigen.

Kenmerk async/await Promise
Syntax Meer vergelijkbaar met synchrone code. Gebruikt .then(), .catch(), .finally().
Leesbaarheid Over het algemeen hoger, vooral bij ketens. Kan leiden tot "Callback hell" bij complexe ketens.
Foutafhandeling Gebruikt standaard try...catch. Gebruikt .catch() of de tweede argument in .then().
Parallelisme Vereist expliciet gebruik van Promise.all() of Promise.allSettled(). Kan explicieter zijn, maar minder leesbaar zonder async/await.
// Voorbeeld met Promise
function getDataPromise() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Gegevens ontvangen');
    }, 1000);
  });
}

getDataPromise()
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });
// Voorbeeld met async/await
async function getDataAsync() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Gegevens ontvangen');
    }, 1000);
  });
}

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

processData();