치춘짱베리굿나이스
UnhandledPromiseRejection 본문
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