abort / request cancel the request/
http request 취소
AbortController 를 사용하면 된다.
아래는 ref. 1 의 예제이다.
downloadBtn 을 누르면, fetch 가 시작되며, abortBtn 을 누르면, controller.abort() 가 호출되는 구조이다.
controller.abort() 가 호출되면, fetch() 는 AbortError 라는 DOMException 을 발생시킨다.
let controller;
const url = 'video.mp4';
const downloadBtn = document.querySelector('.download');
const abortBtn = document.querySelector('.abort');
downloadBtn.addEventListener('click', fetchVideo);
abortBtn.addEventListener('click', () => {
  if (controller) {
    controller.abort();
    console.log('Download aborted');
  }
});
function fetchVideo() {
  controller = new AbortController();
  const signal = controller.signal;
  fetch(url, { signal })
    .then((response) => {
      console.log('Download complete', response);
    })
    .catch((err) => {
      console.error(`Download error: ${err.message}`);
    });
} 
댓글 없음:
댓글 쓰기