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