Sobes.tech
Junior

Wat is het verschil tussen het gebruik van Promise en de syntax async/await?

sobes.tech AI

Antwoord van AI

Promise vertegenwoordigt een object dat de uiteindelijke voltooiing of afwijzing van een asynchrone operatie weerspiegelt. Het beheert asynchrone stroom met behulp van callbacks .then() en .catch().

async/await is een syntactisch suiker over Promise, die de asynchrone code leesbaarder maakt en lijkt op synchrone code. Een functie gemarkeerd als async retourneert altijd een Promise. De operator await kan alleen binnen async functies worden gebruikt en pauzeert de uitvoering van de functie totdat de Promise is opgelost of afgewezen, en geeft vervolgens het resultaat terug of genereert een uitzondering.

Aspect Promise Async/Await
Leesbaarheid Vereist ketens .then() en .catch() Lijkt op synchrone code, lineaire stroom
Foutafhandeling Gebruikt .catch() Gebruikt try...catch blokken
Uitvoeringsstroom Beheerd door callbacks Pauzeert hervat de functie
Teruggegeven waarde Promise Promise (voor async functies) of resultaat van Promise (voor await)
Afhankelijkheid Onafhankelijk mechanisme Gebaseerd op Promise

Voorbeeld met Promise:

// Voorbeeld met Promise
function fetchDataPromise() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("Gegevens ontvangen (Promise)");
    }, 1000);
  });
}

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

Voorbeeld met async/await:

// Voorbeeld met async/await
function fetchDataAsync() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("Gegevens ontvangen (async/await)");
    }, 1000);
  });
}

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

showData();