치춘짱베리굿나이스

UnhandledPromiseRejection 본문

Javascript + Typescript/이론과 문법

UnhandledPromiseRejection

치춘 2023. 7. 17. 11:48

UnhandledPromiseRejection

[UnhandledPromiseRejection: 이 오류는 async 함수 내에서 catch 블록 없이 예외가 던져졌거나, promise가 .catch() 체인을 통해 핸들되지 않은 채 reject되었을 때 발생합니다. Promise는 다음의 이유로 reject 되었습니다: "window is not initialized"]

필자가 프로젝트에 Next.js 를 써서 그런진 모르겠지만 빌드를 할 때마다 window 객체가 존재하지 않을 때의 예외처리가 제대로 되어있지 않다는!! 오류를 겪었다

서버사이드 렌더링 시에는 당연히 window 객체가 존재하지 않겠죠? 문제는 검색해본 대로 try-catch문을 여기저기 달아봐도 오류 핸들링이 되지 않는 것이었다…

해결법

해결법은 에러 문구에 확실하게 나와 있었다 : "Promise는 다음의 이유로 reject 되었습니다 ~"

Promise가 꽤나 여러 곳에 있던 탓에 온갖 곳에 try-catch, then-catch 를 달아본 결과…

에러 문구에 적혀있는 예외가 터진 Promise에만 catch 체이닝을 달아줬더니 해결되었다

참 간단한 해결법이었는데 한참 해메다가 Next.js 문제인 줄 알고 CRA로 회귀할뻔…

다음에도 같은 오류를 마주하면 에러 문구에 적힌 대로만 하면 될 듯하다


'Javascript + Typescript > 이론과 문법' 카테고리의 다른 글

this in JavaScript  (0) 2023.07.26
클로저  (2) 2023.07.18
[Typescript] 인덱스 시그니쳐  (0) 2023.07.14
이벤트 버블링과 캡쳐링  (0) 2023.07.13
스코프, 렉시컬 스코프  (0) 2023.06.26
Comments