Trouble Shooting

Uncaught (in promise) TypeError: Failed to execute 'json' on 'Response': body stream already read 오류

왕돼지티라노 2023. 4. 27. 13:37
반응형

JS에서 fetch함수를 이용하여 게시글 리스트 조회 api를 불러오는 로직을 작성하던 중 마주한 오류이다.

아래는 오류가 발생한 해당 코드이다.

원래 잘 실행되던 코드가 왜 갑자기 안되는건가 했더니, 65번줄의 로그때문에 문제가 발생하는듯하였다.(해당 줄을 지웠을 때 오류가 나지 않는걸 보니)

해당 로그는 아래와 같다.

직역해보면 스트림이 이미 읽혔다는 메시지인데.. 무슨 의미인지 잘 이해가 가지 않았다.

알아보니 fetch가 반환하는것은 데이터 스트림이라고 한다.

그래서 64번줄에 로그를 찍어보니 아래와 같이 response.body안의 객체가 ReadableStream 데이터 스트림이라는것을 알 수 있었다.

스트림을 읽어야 데이터를 볼 수 있는데, 문제의 코드에서는 스트림을 읽어서 리턴하기 전에, 콘솔을 찍어 미리 읽어내려고 했기 때문에 문제가 발생한 것으로 보였다.

문제가 발생하는 해당 줄(65번)을 없애주면 문제는 해결된다.

반응형