Sobes.tech
Junior

async/await va Promise o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

async/await — bu promislarga ustun sintaksik shakar. U asinxron kodni o‘qilishi oson va sinxron tarzda yozishga imkon beradi, async kalit so‘zi bilan funksiyalarni belgilash va ichida await yordamida promise ning hal bo‘lishini kutish uchun ishlatiladi. Promislar — bu asinxron operatsiyaning yakunlanishini (yoki muvaffaqiyatsizligini) va uning natijaviy qiymatini ifodalovchi obyektlar.

Xususiyat async/await Promise
Sintaksis Ko‘proq sinxron kodga o‘xshash. .then(), .catch(), .finally() metodlarini ishlatadi.
O‘qilishi Umuman olganda, yuqori, ayniqsa zanjirlar bilan. Murakkab zanjirlar paytida "Callback hell" ga olib kelishi mumkin.
Xatolarni boshqarish Standart try...catch ishlatadi. .catch() yoki .then() ikkinchi argumentini ishlatadi.
Paralellik Aniq Promise.all() yoki Promise.allSettled() ishlatishni talab qiladi. Ko‘proq aniq bo‘lishi mumkin, ammo async/await bo‘lmasa kamroq o‘qiladi.
// Promise bilan misol
function getDataPromise() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Ma’lumotlar olindi');
    }, 1000);
  });
}

getDataPromise()
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });
// async/await bilan misol
async function getDataAsync() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Ma’lumotlar olindi');
    }, 1000);
  });
}

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

processData();