비동기(2)-catch

김명재·2023년 4월 2일
0

비동기(1) 글에서 error를 다루는 법까지 적었는데 이번에는 그 error를 조금더 잘 다루기 위한 방법을 소개할까 한다.

실무에는 보통 error를 다루기 위해 쓰는 메소드로 catch메소를 쓴다고한다.

catch메소드라고 then메소드와 다를 것은 없다. 사진에서도 보시다시피

then(undefined, (error) => {console.log(error)})

를 catch메소드로 나타내면

catch((error) =>{console.log(error)})

인 것이다.

이 코드를 출력하면 error가 발생한다. catch메소드가 있는데 왜 그럴까?

당연히 catch메소드가 중간에 있기 때문이다.

아무리 catch메소드가 있다고 한들 catch메소드 이후에 then메소드에 있는 콜백에서 error가 발생하면 이 error를 내뿜는 콜백을 파라미터값으로 둔 then메소드가 리턴하는 promise객체는 rejected상태가 된다.

rejected상태가 된 promise객체는 이후 별도에 처리가 없으면 브라우저는 이 promise객체를 error라고 생각하게 된다.

이러한 현상이 발생하지 않도록 보통 실무에서도 사진과 같이 catch메소드를 마지막에 작성한다고 한다.

profile
steadyness is all time way

0개의 댓글