Middle
Wat is het voordeel van de syntactische suiker die wordt gepresenteerd in de vorm van async/await in vergelijking met Promise?
sobes.tech AI
Antwoord van AI
Het belangrijkste voordeel van async/await ten opzichte van "schone" promises is de mogelijkheid om asynchrone code te schrijven in een meer synchrone en leesbare stijl.
Vergelijking:
| Aspect | Promise |
async/await |
|---|---|---|
| Leesbaarheid | Kan leiden tot "promise-ketens". | Maakt het mogelijk om code bijna als synchrone code te schrijven. |
| Foutafhandeling | Gebruikt .catch(). |
Gebruikt de standaard try...catch. |
| Sequentie | Vereist zorgvuldige chaining of Promise.all. |
Duidelijk en gemakkelijk te lezen. |
| Debugging | Kan moeilijker zijn om de stroom te volgen. | Vergelijkbaar met het debuggen van synchrone code. |
| Syntactische ruis | Veel .then(), .catch(). |
Minder boilerplate code. |
Voorbeeld met promises:
// Voorbeeld met Promise
fetch('user.json')
.then(response => response.json())
.then(user => fetch(`https://api.github.com/users/${user.name}`))
.then(githubUser => githubUser.json())
.then(githubUser => {
// Gegevensverwerking
console.log(githubUser);
})
.catch(error => {
console.error('Fout:', error);
});
Voorbeeld met async/await:
// Voorbeeld met async/await
async function getUserData() {
try {
const userResponse = await fetch('user.json');
const user = await userResponse.json();
const githubResponse = await fetch(`https://api.github.com/users/${user.name}`);
const githubUser = await githubResponse.json();
// Gegevensverwerking
console.log(githubUser);
} catch (error) {
console.error('Fout:', error);
}
}
getUserData();
Dus, async/await vervangt promises niet, maar is een syntactisch suiker eroverheen, waardoor asynchrone operaties meer intuïtief en onderhoudsvriendelijk worden.