Junior
Mis vahe on Promise kasutamise ja async/await süntaksi vahel?
sobes.tech AI
Vastus AI-lt
Promise on objekt, mis peegeldab lõplikku asünkroonse operatsiooni lõpetamist või tagasilükkamist. See haldab asünkroonseid vooge, kasutades .then() ja .catch() tagasisidefunktsioone.
async/await on Promise-i sünteks, mis muudab asünkroonse koodi loetavamaks ja sarnasemaks sünkrontsele. Funktsioon, mis on märgitud async, tagastab alati Promise. await operaatorit saab kasutada ainult async funktsiooni sees ning see peatab funktsiooni täitmise kuni Promise täidetakse või lükatakse tagasi, seejärel tagastab selle tulemuse või viskab erandi.
| Aspekt | Promise | Async/Await |
|---|---|---|
| Loetavus | Vajab .then() ja .catch() ahelasid |
Sarnane sünkrontsele koodile, lineaarne voog |
| Vigade käsitlemine | Kasutab .catch() |
Kasutab try...catch plokke |
| Täitmise voog | Hallatakse callback-idega | Peatab/taasaktiveerib funktsiooni |
| Tagastatav väärtus | Promise | Promise (async funktsioonile) või Promise tulemus (await) |
| Sõltuvus | Iseseisev mehhanism | Põhineb Promise'il |
Näide Promise-ga:
// Näide Promise'iga
function fetchDataPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Andmed saadud (Promise)");
}, 1000);
});
}
fetchDataPromise()
.then(data => console.log(data))
.catch(error => console.error(error));
Näide async/await-ga:
// Näide async/await'iga
function fetchDataAsync() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Andmed saadud (async/await)");
}, 1000);
});
}
async function showData() {
try {
const data = await fetchDataAsync();
console.log(data);
} catch (error) {
console.error(error);
}
}
showData();