Chặn bắt toàn bộ lỗi AJAX trong JavaScript

Promise mà <fetch trả về chỉ kết thúc với lỗi khi có lỗi mạng xảy ra. Nếu máy chủ trả về phản hồi với trạng thái <404 hoặc <500, thì promise sẽ được hoàn thành thành công, nhưng trạng thái <ok sẽ được đặt thành <false.

Hãy chặn bắt cả hai loại lỗi:

javascriptbutton.addEventListener('click', function() {
  let promise = fetch('/ajax.html')
  .then(
    response => {
      if (response.ok) {
        return response.text();
      } else {
        console.log('trạng thái phản hồi không tốt');
        return '';
      }
    },
  ).then(
    text => {
      console.log(text);
    }
  ).catch(
    error => {
      console.log(error);
    }
  );
});

Hãy làm sao để lỗi liên quan đến trạng thái HTTP không tốt cũng được bắt bởi khối <catch. Để làm điều này, chúng ta sẽ truyền nó đi xa hơn qua <throw:

javascriptbutton.addEventListener('click', function() {
  let promise = fetch('/ajax.html')
  .then(
    response => {
      if (response.ok) {
        return response.text();
      } else {
        throw new Error('trạng thái phản hồi không tốt');
      }
    },
  ).then(
    text => {
      console.log(text);
    }
  ).catch(
    error => {
      console.log(error);
    }
  );
});
Задание 1

Hiển thị văn bản của trang nếu yêu cầu thành công, và lỗi nếu có điều gì đó không ổn.