Sobes.tech
Junior

Was ist der Unterschied zwischen async/await und Promise?

sobes.tech KI

Antwort von AI

async/await ist eine syntaktische Zuckerüberladung für Promises. Es ermöglicht das Schreiben asynchronen Codes in einem lesbareren, synchronen Stil, indem die Schlüsselwörter async für Funktionen verwendet werden, die await enthalten, um auf die Auflösung eines Promises zu warten. Promises sind Objekte, die den Abschluss (oder Fehler) einer asynchronen Operation und ihren resultierenden Wert darstellen.

Eigenschaft async/await Promise
Syntax Ähnlicher zu synchronem Code. Verwendet .then(), .catch(), .finally().
Lesbarkeit In der Regel höher, besonders bei Verkettungen. Kann zu "Callback-Hell" bei komplexen Verkettungen führen.
Fehlerbehandlung Nutzt try...catch. Nutzt .catch() oder den zweiten Parameter in .then().
Parallelismus Erfordert explizite Verwendung von Promise.all() oder Promise.allSettled(). Kann expliziter sein, aber weniger lesbar ohne async/await.
// Beispiel mit Promise
function getDataPromise() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Daten empfangen');
    }, 1000);
  });
}

getDataPromise()
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });
// Beispiel mit async/await
async function getDataAsync() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Daten empfangen');
    }, 1000);
  });
}

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

processData();