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();