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.
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:
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.
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.
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.
// ❌ 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...catchdan foydalaning awaitqatorlariga 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.
