최근 일하다가 HTTP 요청을 취소해야 할 일이 있어서 그동안 알고는 있었지만 사용해 보지는 않았던 AbortController를 처음으로 사용해 봤습니다. 구현은 다했지만 좀더 내용을 찾아보고 다
최근 일하다가 HTTP 요청을 취소해야 할 일이 있어서 그동안 알고는 있었지만 사용해 보지는 않았던 AbortController를 처음으로 사용해 봤습니다. 구현은 다했지만 좀더 내용을 찾아보고 다양한 경우에서 사용할 수 있는 방법을 정리해 봤습니다. 웹 요청이란게 보통은 오래 걸리지 않는게 보통이고 이후 필요 없어졌다고 하더라도 일일이 취소하기 보다는 받아서 응답을 사용하지 않는 경우가 대부분이기는 하지만 기능의 특성상 타임아웃을 구현하거나 취소를 시켜야 하는 경우에 그동안은 방법이 없었지만 이젠 AbortController를 이용해서 요청을 취소시킬 수 있습니다. AbortController는 시그널을 요청에 전달한 뒤 AbortController에서 abort하는 식으로 동작하기 때문에 요청하는 기능에서 이를 지원한다면 어디서나 사용할 수 있습니다. 대표적으로 브라우저에서 fetch()를 사용할 때나(이젠 node에도 있지만...) stream에서 AbortController를 어떻게 연결해서 요청을 취소할 수 있는지를 살펴봤습니다.