Asinxron kodni debug qilish

ULASHISH

Asinxron kodni debug qilish

Async xatolar yangi boshlanuvchilar uchun eng qiyin xatolardir.

Kod to‘g‘ri ko‘rinadi, lekin hech narsa sodir bo‘lmayotgandek.

Nima uchun asinxron kodni debug qilish qiyin

Async code runs later.

Shu sababli xatolar ko‘rinmasdek tuyuladi.

Yangi boshlovchilarning keng tarqalgan muammolari qatoriga yetishmayotgan ma’lumotlar va sezdirmasdan yuz beradigan xatolar kiradi.

Asinxron kod yuqoridan pastga qarab bajarilmaydi.

U biror amal tugaganda ishga tushadi.


fetch()’ni debug qilish

fetch() funksiyasi asinxron.

U ma’lumotlarni darhol qaytarmaydi.

Misol:

fetch("data.json")
.then(response => response.json())
.then(data => console.log(data));

Agar hech narsa ko‘rinmasa, avvalo konsolni tekshiring.

Ma’lumotlardan foydalanishdan oldin har doim javobni konsolga chiqaring.

Improved debugging:

fetch("data.json")
.then(response => {
  console.log(response);
  return response.json();
})
.then(data => console.log(data));

Network yorlig‘ini tekshiring

Async xatolar ko‘pincha tarmoq muammolaridir.

Network yorlig‘i so‘rov muvaffaqiyatsiz bo‘lganini ko‘rsatadi.

  • So‘rov holatini (status) tekshiring.
  • Fayl yo‘lini tekshiring.
  • Server xato qaytargan-qaytarmaganini tekshiring.

async va await’ni debug qilish

async va await asinxron kodni o‘qishni osonlashtiradi.

Ular baribir asinxron bo‘lib qoladi.

Misol:

async function loadData() {
  let response = await fetch("data.json");
  let data = await response.json();
  console.log(data);
}

loadData();

await satrlarda to‘xtash nuqtalarini o‘rnatishingiz mumkin.

Asinxron kodni ham oddiy kod kabi qadamma-qadam bajaring.


Asinxron xatolarni qayta ishlash

Asinxron xatolar aniq (explicit) qayta ishlanishi kerak.

Otherwise they fail silently.

Xatolarni qayta ishlash bilan misol:

async function loadData() {
  try {
    let response = await fetch("wrong.json");
    let data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

async funksiyalar ichidagi xatolar ushlanishi (catch) kerak.


Hech qachon resolve bo‘lmaydigan Promise’lar

Sometimes async code never finishes.

Bu odatda return yetishmayotganini bildiradi.

Xato misol:

function getData() {
  fetch("data.json")
  .then(response => response.json());
}

Promise natijasi hech qachon qaytarilmaydi.

Zanjir (chaining) tuzganda Promise’larni har doim qaytaring.


Async Code uchun debug ro‘yxati


  • Konsolda xatolar bor-yo‘qligini tekshiring.
  • Network yorlig‘ini tekshiring.
  • Log responses before using them.
  • async funksiyalar bilan try...catch’dan foydalaning.
  • Set breakpoints on await lines.

Siz debug qilish boblarini tugatdingiz

Endi siz JavaScript-ni bosqichma-bosqich debug qilishni bilasiz.

Bu ko‘nikma yangi boshlovchilarni haqiqiy dasturchilardan ajratib turadi.


Debug qilish — iste’dod emas.

Bu — odat.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!