Junior
Kāda ir atšķirība starp Promise izmantošanu un async/await sintaksi?
sobes.tech AI
Atbilde no AI
Promise ir objekts, kas atspoguļo galīgo asinhronas operācijas pabeigšanu vai noraidīšanu. Tas pārvalda asinhronos plūsmas, izmantojot .then() un .catch() atgriezeniskās saites funkcijas.
async/await ir Promise sintaktisks cukurs, kas padara asinhrono kodu lasāmāku un līdzīgu sinhronajam. Funkcija, kas marķēta kā async, vienmēr atgriež Promise. Operators await var tikt izmantots tikai async funkcijas iekšienē un tas pārtrauc funkcijas izpildi līdz Promise izpildei vai noraidīšanai, pēc tam tas atgriež tā rezultātu vai izsauc izņēmumu.
| Aspekts | Promise | Async/Await |
|---|---|---|
| Lasāmība | Prasa ķēdes .then() un .catch() |
Līdzīgs sinhronajam kodam, līniju plūsma |
| Kļūdu apstrāde | Izmanto .catch() |
Izmanto try...catch blokus |
| Plūsmas izpilde | Pārvalda atpakaļsaišu funkcijas | Pārtrauc/atsāk funkciju |
| Atgrieztā vērtība | Promise | Promise (async funkcijai) vai Promise rezultāts (await) |
| Atkarība | Pašpietiekams mehānisms | Būvēts uz Promise |
Piemērs ar Promise:
// Piemērs ar Promise
function fetchDataPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Dati saņemti (Promise)");
}, 1000);
});
}
fetchDataPromise()
.then(data => console.log(data))
.catch(error => console.error(error));
Piemērs ar async/await:
// Piemērs ar async/await
function fetchDataAsync() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Dati saņemti (async/await)");
}, 1000);
});
}
async function showData() {
try {
const data = await fetchDataAsync();
console.log(data);
} catch (error) {
console.error(error);
}
}
showData();