TIL-23.06.06

문제점
서버와 비동기 통신을 할때 습관적으로 써왔던 async await 에 대한 중요성을 다시 한번 자각하는계기가 있었다.
서버와 통신하는 axios를 intance로 커스텀해 한 파일내에서 따로 관리하도록 했고, inteceptors를 활용해 에러핸들링을 하도록 작성했다. errorCode로 잡아낼수있는 에러들은 해당파일에서 에러처리를 하도록했고, 아직 errorCode로 지정되지않는 에러는
return Promise.reject()를 통해 반환하도록했다. 코드를 작성하고 테스트 중 에러가 발생했고, 콘솔을 확인해보니 Uncaught(in pomise)에러가 발생...
반환되는 프로미스 객체를 잡아내고있지않다는 에러다.
분명히 axios를 이용한 모든 서버통신의 에러 중 errorCode가 적혀있는 에러는 콘솔로그가 되어있던 에러핸들링이 되어있고, errorCode가 없는 에러는 pomise객체를 반환하고있는데, 위의 에러가 발생한걸보니 반환된 promise에러객체를 잡아내고 있지 않다는것이다.
시도한점 & 알게된점
서버통신을 하는 모든 컴포넌트들을 다 찾아보았다. 거의 대부분은 문제없이 잘 작성되어있었지만, 닉네임을 변경하는 모달컴포넌트에서의 서버통신 함수에서 async await키워드가 적혀있지 않는것을 발견
처음에 이 키워드들이 적혀있지않는것을 봐도 이게 문제인지는 몰랐는데 곰곰히 생각해보니 이게 문제였던것이다.
비동기 서버통신을 하는 부분앞에 await키워드가 적혀있지않으니 통신이 완료되기전에 밑의 catch(error)부분으로 실행이 넘어갔던것
그러니 당연히 에러객체를 잡아내지못한것이다.
습관이 무서운것일까...익숙해지면 중요함을 망각하는것일까...
습관적으로 사용하는 메소드들에 대한 중요성을 다시금 깨닫게되는 계기였다.