Sobes.tech
Junior

Promise va async/await sintaksidan foydalanish o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Promise — bu asinxron operatsiyaning yakunlanishi yoki rad etilishini aks ettiradigan obyekt. U .then() va .catch() callbacklari yordamida asinxron oqimlarni boshqaradi.

async/await — bu Promise ustidagi sintaktik shakar bo‘lib, asinxron kodni o‘qilishi osonroq va sinxron kodga o‘xshash qiladi. async bilan belgilangan funksiya har doim Promise qaytaradi. await operatori faqat async funksiyalar ichida ishlatilishi mumkin va funksiyaning bajarilishini Promise hal qilinmaguncha yoki rad etilguncha to‘xtatadi, uning natijasini qaytaradi yoki istisno chiqaradi.

Nuqta Promise Async/Await
O‘qilishi .then() va .catch() zanjirlari talab etiladi Sxemaga o‘xshash, chiziqli oqim
Xatoliklarni boshqarish .catch() ishlatadi try...catch bloklarini ishlatadi
Bajarilish oqimi CallBacklar yordamida boshqariladi To‘xtatadi/ davom ettiradi funksiyani
Qaytadigan qiymat Promise Promise (async funksiyalar uchun) yoki Promise natijasi (await uchun)
Bog‘liqlik Mustaqil mexanizm Promise asosida

Promise bilan misol:

// Promise misoli
function fetchDataPromise() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("Ma’lumotlar olindi (Promise)");
    }, 1000);
  });
}

fetchDataPromise()
  .then(data => console.log(data))
  .catch(error => console.error(error));

async/await bilan misol:

// async/await bilan misol
function fetchDataAsync() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve("Ma’lumotlar olindi (async/await)");
    }, 1000);
  });
}

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

showData();