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.