Skip to content

JavaScript Asinxron Kodni Debugging Qilish (Async Debugging)

Asinxron kodni debugging qilish

Asinxron xatolar boshlang'ichlar uchun eng qiyin xatolardir. Kod to'g'ri ko'rinadi, lekin hech narsa sodir bo'lmayotgandek tuyuladi.


Nima uchun asinxron kodni debug qilish qiyin?

Asinxron kod keyinroq ishlaydi. Bu xatolarni ko'rinmas qiladi. Keng tarqalgan boshlang'ich muammolari: yetishmayotgan ma'lumotlar va jimgina muvaffaqiyatsizliklar.

Eslatma

Asinxron kod yuqoridan pastga ishlamaydi. U biror narsa tugaganda ishlaydi.


fetch() ni debugging qilish

fetch() funksiyasi asinxrondir. U ma'lumotni darhol qaytarmaydi.

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

Agar hech narsa ko'rinmasa, avval konsolni tekshiring.

Maslahat

Ma'lumotni ishlatishdan oldin har doim javobni (response) loglang.

Yaxshilangan debugging:

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

Network tabini tekshiring

Asinxron xatolar ko'pincha tarmoq muammolaridir. Network tabi so'rov muvaffaqiyatsiz bo'lganini ko'rsatadi.

  • So'rov holatini (status) tekshiring
  • Fayl yo'lini tekshiring
  • Server xato qaytarganini tekshiring

async va await ni debugging qilish

async va await asinxron kodni o'qishni osonlashtiradi, lekin ular hali ham asinxrondir.

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

loadData();

await qatorlariga to'xtash nuqtalarini o'rnatishingiz mumkin.

Maslahat

Asinxron kodni oddiy koddek qadamma-qadam bajaring.


Asinxron xatolarni boshqarish

Asinxron xatolar aniq ravishda boshqarilishi kerak. Aks holda ular jimgina muvaffaqiyatsiz bo'ladi.

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

Asinxron funksiyalar ichidagi xatolar ushlash kerak (catch).


Hech qachon hal bo'lmaydigan promiselar

Ba'zan asinxron kod hech qachon tugamaydi. Bu odatda yetishmayotgan return ni bildiradi.

js
// ❌ Xato: Promise natijasi qaytarilmaydi
function getData() {
  fetch("data.json")
  .then(response => response.json());
}

Ogohlantirish

Zanjir qilayotganda har doim promiselarni qaytaring.


Asinxron kod uchun debugging nazorat ro'yxati

  • Konsolda xatolarni tekshiring
  • Network tabini tekshiring
  • Ishlatishdan oldin javoblarni loglang
  • Asinxron funksiyalar bilan try...catch dan foydalaning
  • await qatorlariga to'xtash nuqtalarini o'rnating

Debugging boblarini tugatdingiz!

Siz endi JavaScript-ni qadamma-qadam debug qilishni bilasiz. Bu mahorat boshlang'ichlarni haqiqiy dasturchilardan ajratib turadi.

Eslatma

Debugging — bu iste'dod emas. Bu — odat.