Sobes.tech
Middle

Nima uchun async/await tuzilishi kiritildi va u asinxron kod bilan ishlashni qanday yaxshilaydi?

sobes.tech AI

AIdan javob

Async/await kiritildi, asinxron kod yozishni soddalashtirish uchun, uni an'anaviy callbacklar yoki va'dalar bilan taqqoslaganda, ko'proq o'qilishi va saqlanishi uchun.

Qanday yaxshilaydi:

  1. O'qilishi: async/await bilan yozilgan kod sinxron kodga o'xshaydi, satr bo'yicha, bu uni tushunishni sezilarli darajada osonlashtiradi.
  2. Xatoliklarni boshqarish: Standart konstruktsiyalarni, masalan, try/catch, asinxron kodda xatoliklarni boshqarish uchun ishlatish imkonini beradi, .catch() o'rniga.
  3. Xatoliklarni tahlil qilish: To'xtash nuqtalari (breakpoints) sinxron koddek ishlaydi, bu tahlil qilish jarayonini soddalashtiradi.
  4. Kamroq "callback hell": Ichma-ich joylashgan callbacklar muammosini bartaraf etadi, bu esa o'qilishi qiyin kodga olib keladi.

Misol:

Promise bilan kod:

// Promise misoli
fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('Ma`lumotlarni olishda xato:', error);
  });

Xuddi shunday kod async/await bilan:

// async/await bilan misol
async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('Ma`lumotlarni olishda xato:', error);
  }
}

fetchData();

async/await tuzilishi va'dalar asosida qurilgan bo'lib, ular bilan ishlash uchun sintaktik shakar hisoblanadi. async bilan belgilangan funksiya har doim va'da qaytaradi. await operatori faqat async funksiyalar ichida ishlatilishi mumkin va va'daning hal qilinishini "kutadi", uning hal qilingan qiymatini qaytaradi yoki xato yuz berganda istisno chiqaradi.