Popolno prestrezanje AJAX napak v JavaScriptu

Promise, ki ga vrne fetch, se konča z napako le, če je prišlo do napake omrežja. Če pa strežnik vrne odgovor s statusom 404 ali 500, bo promise uspešno zaključen, vendar bo status ok nastavljen na false.

Prestrežimo obe vrsti napak:

javascriptbutton.addEventListener('click', function() {
  let promise = fetch('/ajax.html')
  .then(
    response => {
      if (response.ok) {
        return response.text();
      } else {
        console.log('slab status odziva');
        return '';
      }
    },
  ).then(
    text => {
      console.log(text);
    }
  ).catch(
    error => {
      console.log(error);
    }
  );
});

Poskrbimo, da se bo napaka, povezana s slabim statusom HTTP odziva, prav tako ujela v bloku catch. Za to jo preusmerimo naprej z throw:

javascriptbutton.addEventListener('click', function() {
  let promise = fetch('/ajax.html')
  .then(
    response => {
      if (response.ok) {
        return response.text();
      } else {
        throw new Error('slab status odziva');
      }
    },
  ).then(
    text => {
      console.log(text);
    }
  ).catch(
    error => {
      console.log(error);
    }
  );
});
Задание 1

Izpišite besedilo strani, če je bila zahteva uspešna, in napako, če je šlo kaj narobe.