Sobes.tech
Junior

async/await və Promise arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

async/await promisler üzərində sintaktik şəkərdir. O, asinxron kodu daha oxunaqlı və sinxron tərzdə yazmağa imkan verir, async açar sözü ilə funksiyaları təyin edir və bu funksiyalar daxilində await istifadə edilərək promise-in həll olunmasını gözləyir. Promislər, asinxron əməliyyatın yekunlaşmasını (və ya uğursuzluğunu) və onun nəticə dəyərini təmsil edən obyektlərdir.

Xüsusiyyət async/await Promise
Sintaksis Daha çox sinxron kod kimi görünür. .then(), .catch(), .finally() metodlarından istifadə edir.
Oxunma qabiliyyəti Ümumiyyətlə daha yüksək, xüsusən zəncirlərdə. Çətin zəncirlərdə "Callback hell"-ə səbəb ola bilər.
Xəta idarəetməsi Standart try...catch istifadə edir. .catch() və ya .then()-də ikinci arqument istifadə edir.
Paralellik Aydın Promise.all() və ya Promise.allSettled() istifadə etməyi tələb edir. Daha aydın ola bilər, amma async/await olmadan daha az oxunaqlı.
// Promise nümunəsi
function getDataPromise() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Məlumatlar alındı');
    }, 1000);
  });
}

getDataPromise()
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });
// async/await nümunəsi
async function getDataAsync() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Məlumatlar alındı');
    }, 1000);
  });
}

async function processData() {
  try {
    const data = await getDataAsync();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

processData();