Sobes.tech
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().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().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();