inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

타입스크립트로 배우는 리액트(React.js) : 기초부터 최신 기술까지 완벽하게

Post Browser 검색

218. Post Browser 에서 처음 실행 시 CanceledError 발생

해결된 질문

115

jyuvenia

작성한 질문수 8

0

useEffect(() => {
  const controller = new AbortController();
  const fetchPosts = async () => {
    try {
      setIsLoading(true);
      const { data } = await axiosInstance.get(
        `/posts?_page=${currentPage}&_limit=${limit}&q=${encodeURIComponent(searchText)}`,
        {
          signal: controller.signal,
        },
      );
      setPosts(data);
    } catch (e) {
      console.log(e);
      if (e instanceof Error && e.name !== "CanceledError") {
        if (e.message.includes("timeout")) {
          setError("timeout 오류 발생");
        } else {
          setError(e.message);
        }
      }
    } finally {
      if (!controller.signal.aborted) setIsLoading(false);
    }
  };
  fetchPosts();
  return () => {
    controller.abort();
  };
}, [currentPage, limit, searchText]);

처음 실행 시(새로고침)

console.log(e)

에서

CanceledError {message: 'canceled', name: 'CanceledError', code: 'ERR_CANCELED', config: {…}, request: XMLHttpRequest, …}

이렇게 무조건 잡히는데 왜 그럴 까요? 물론 프로그램 실행 에는 문제가 없습니다.

 

react react-router redux-toolkit zustand react.js

답변 3

0

수코딩

안녕하세요 🙂

잘 해결되셨다니 다행입니다.

궁금하신 게 있으시면 다시 문의주세요! ㅎㅎ

0

jyuvenia

그 다음에 CanceledError 가 아닌 것만 오류 처리를 한다는 코드를 적어 놓고 그 위에 e 를 찍었으니... 당연 하네요 ㅎㅎㅎ 순간 착각 했습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. jyuvenia님.

useEffect 훅을 사용하는 코드에서 CanceledError가 발생하는 이유는 다음과 같습니다. useEffect는 컴포넌트가 마운트되거나 의존성 배열 내의 값이 변경될 때마다 실행됩니다. 이 과정에서 이전에 시작된 비동기 요청이 여전히 진행 중인 경우, AbortController를 사용해 해제(abort)하면서 CancelledError가 발생하게 됩니다.

간단히 요약하자면, React 컴포넌트의 재랜더링 또는 언마운트 과정에서 요청이 중단되면서 CanceledError가 발생하는 것입니다. 이 오류는 자연스러운 동작이며 별도의 프로그램 실행에는 영향을 주지 않으므로 걱정하지 않으셔도 됩니다.

CanceledError에 대한 핸들링을 하지 않으시거나, 콘솔에 출력되지 않도록 조치하시면 불필요한 오류 기록을 피할 수 있습니다.

추가로, 이와 관련된 유사한 사례나 해결 방안이 궁금하시면, 아래의 질문과 답변 링크를 참고해보세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

react-fetch -2 (loading) 에러

0

39

2

useEffect return문

0

46

3

할 일 수정 질문

0

42

2

컴포넌트 분리하기 강의 편

0

47

2

몽고디비 접속의 건

0

50

3

소스코드 제공여부

0

61

2

기본 파일 구조

0

55

2

공부방향에 대한 조언

0

76

2

styled-components

0

53

2

상태(State) 가 "시간이 지남~" 에 대해 질문 있습니다.

0

66

2

import {} 중괄호 차이점

0

62

2

[ 문의]몽고DB connect 의 건

0

79

2

제공되는 react_code.zip 중에 ..

0

80

2

커리큘럼 비활성화

0

68

2

설명하시는 개념들을 잘 모르겠습니다.

0

77

2

이해가 절반 정도 되는데요.

0

79

1

styled-components(전역)

0

76

1

cloudinary 관련

0

98

3

useOptimistic 실전-1 useState

0

104

2

discord 초대장 갱신이 필요한거같습니다.

0

99

1

할일 관리 앱(메모이제이션)

0

124

2

Web 플랫폼 등록

0

185

2

함수 정의 기준

0

102

2

fetch는 사용되는가

0

102

2