Junior
Promise və async/await sintaksisindən istifadə arasında fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Promise qeyri-sinxron əməliyyatın yekunlaşmasını və ya rədd edilməsini əks etdirən obyektidir. O, .then() və .catch() geri çağırışları vasitəsilə qeyri-sinxron axınları idarə edir.
async/await isə Promise üzərində sintaktik şəkərdir və qeyri-sinxron kodu daha oxunaqlı və sinxron kimi göstərir. async ilə işarələnmiş funksiya həmişə Promise qaytarır. await operatoru yalnız async funksiyalar daxilində istifadə oluna bilər və funksiyanın icrasını Promise həll olunana və ya rədd olunana qədər dayandırır, sonra onun nəticəsini qaytarır və ya istisna atır.
| Aspekt | Promise | Async/Await |
|---|---|---|
| Oxunaqlıq | .then() və .catch() zəncirləri tələb edir |
Səntetik olaraq oxşar, xətti axın |
| Xəta idarəsi | .catch() istifadə edir |
try...catch bloklarından istifadə edir |
| İcra axını | Callback-lər vasitəsilə idarə olunur | Dayandırır və funksiyanı davam etdirir |
| Geri qaytarılan dəyər | Promise | Promise (async funksiya üçün) və ya Promise nəticəsi (await üçün) |
| Asılılıq | Müstəqil mexanizm | Promise-ə əsaslanır |
Promise nümunəsi:
// Promise nümunəsi
function fetchDataPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Məlumatlar alındı (Promise)");
}, 1000);
});
}
fetchDataPromise()
.then(data => console.log(data))
.catch(error => console.error(error));
async/await nümunəsi:
// async/await nümunəsi
function fetchDataAsync() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("Məlumatlar alındı (async/await)");
}, 1000);
});
}
async function showData() {
try {
const data = await fetchDataAsync();
console.log(data);
} catch (error) {
console.error(error);
}
}
showData();