Junior
Mi a különbség a Promise használata és az async/await szintaxis között?
sobes.tech MI
Válasz az MI-től
A Promise egy objektum, amely egy aszinkron művelet végleges befejezését vagy elutasítását tükrözi. Az aszinkron folyamatokat a .then() és .catch() callbackok segítségével kezeli.
Az async/await a Promise feletti szintaktikus cukor, amely az aszinkron kódot olvashatóbbá és szinkronhoz hasonlóvá teszi. Az async-ként megjelölt függvény mindig Promise-t ad vissza. Az await operátor csak async függvényeken belül használható, és megállítja a függvény végrehajtását, amíg a Promise meg nem oldódik vagy el nem utasítják, majd visszaadja az eredményt vagy kivételt dob.
| Szempont | Promise | Async/Await |
|---|---|---|
| Olvashatóság | .then() és .catch() láncokat igényel |
Hasonló a szinkron kódhoz, lineáris folyamat |
| Hibakezelés | .catch()-t használ |
try...catch blokkokat használ |
| Végrehajtási folyamat | Callback-okon keresztül irányított | Megállítja/folytatja a függvényt |
| Visszatérő érték | Promise | Promise (az async függvényekhez) vagy a Promise eredménye (await esetén) |
| Függőségek | Önálló mechanizmus | Promise alapú |
Példa Promise-szal:
// Promise példa
function fetchDataPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Adatok megérkeztek (Promise)");
}, 1000);
});
}
fetchDataPromise()
.then(data => console.log(data))
.catch(error => console.error(error));
Példa async/await-tel:
// async/await példa
function fetchDataAsync() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Adatok megérkeztek (async/await)");
}, 1000);
});
}
async function showData() {
try {
const data = await fetchDataAsync();
console.log(data);
} catch (error) {
console.error(error);
}
}
showData();