darsga qaytish
Ushbu material faqat quyidagi tillarda mavjud: . Iltimos, bizga Oʻzbek ga tarjima qilishda yordam bering.

Xatolarga bardoshli fetch JSON bilan

Oldingi vazifa yechimini yaxshilang "[missed variable: Path]" vazifasi topilmadi. Endi biz fetch ni faqat chaqirmastan, balki berilgan URL-lardan JSON moslamalarini yuklashimiz kerak.

Buni amalga oshirish uchun misol kodi:

let urls = [
  "https://api.github.com/users/iliakan",
  "https://api.github.com/users/remy",
  "https://api.github.com/users/jeresig",
];

// fetch so'rovlarni qilish
Promise.all(urls.map((url) => fetch(url)))
  // har bir javobni response.json() ga map qilish
  .then((responses) => Promise.all(responses.map((r) => r.json())))
  // har bir foydalanuvchining ismini ko'rsatish
  .then((users) => {
    // (*)
    for (let user of users) {
      alert(user.name);
    }
  });

Muammo shundaki, agar biron bir so’rov bajarilmasa, Promise.all xato bilan rad etadi va biz boshqa barcha so’rovlarning natijalarini yo’qotamiz. Shunday qilib, yuqoridagi kod xuddi oldingi topshiriqdagi kabi xatolarga chidamli emas.

(*) satridagi massiv muvaffaqiyatli so’rovlar uchun tahlil qilingan JSON va xatolar uchun xato bo’lishi uchun kodni o’zgartiring.

Iltimos, xato fetch da (agar tarmoq so’rovi bajarilmasa) va response.json() da (javob noto’g’ri bo’lsa JSON) sodir bo’lishi mumkinligini unutmang. Ikkala holatda ham xato natijalar obyekti a’zosi bo’lishi kerak.

Sandboxda bu ikkala holat mavjud.

Yechim