Junior — Middle
Mi a különbség az async/await és a Promise konstrukciók között, amikor aszinkron kódot dolgozunk JavaScriptben?
sobes.tech MI
Válasz az MI-től
Promise egy objektum, amely egy aszinkron művelet eredményét képviseli, és a jövőben teljesíthető vagy elutasítható. Lehetővé teszi a kezelők regisztrálását a then() és catch() metódusokon keresztül.
Az async/await a Promise feletti szintaktikus cukor, amely lehetővé teszi az aszinkron kód szinkron stílusban történő írását, így olvashatóbbá és könnyebben hibakereshetővé válik.
Fő különbségek:
- A Promise láncokat igényel a eredmények és hibák kezeléséhez.
- Az async/await lehetővé teszi az await kulcsszavak használatát a Promise eredményének várakoztatására egy aszinkron függvényen belül.
Példa:
// Promise
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
// async/await
async function fetchData() {
try {
const response = await fetch(url);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
fetchData();
Így az async/await egyszerűsíti a Promise-szal való munkát, lineárisabbá és érthetőbbé téve a kódot.