본문으로 건너뛰기

abort()

함수 시그니처

abort: (controller: AbortController) => R

관련 RequestInit 속성

{
signal: controller.signal
}

설명

요청에 사용할 AbortController를 설정합니다. 전달한 컨트롤러의 abort()를 호출하면 진행 중인 요청을 중단할 수 있습니다.

빌더 내부에는 컨트롤러와 해당 signal이 함께 저장됩니다.

{
abortController: controller,
options: {
signal: controller.signal,
},
}

예제

import { dench } from 'dench-fetch';

const api = dench('https://api.example.com');
const controller = new AbortController();

const request = api
.get('/slow-resource')
.abort(controller)
.toResponse();

controller.abort();

await request;

실제 RequestInit은 다음과 같습니다.

{
method: 'GET',
signal: controller.signal,
}

주의사항

  • AbortController는 한 번 중단되면 다시 사용할 수 없습니다. 빌더를 재사용할 때는 새로운 컨트롤러를 설정하세요.
  • 요청 중단은 오류로 처리됩니다. error() 콜백이 등록되어 있다면 콜백이 실행된 뒤 오류가 다시 던져집니다.
  • timeout()과 함께 사용하면 제한 시간이 지났을 때 전달한 컨트롤러의 abort()가 호출됩니다.