Web・API -

rejected 상태가 되면 실행할 콜백#5

  • -

💻rejected 상태가 되면 실행할 콜백#5

지금까지는 Promise 객체 fulfilled 상태인 경우만 생각했는데요.
사실 하나의 Promise 객체가 가질수 있는 상태는 총 3가지가 있다고 했습니다.

아직 작업중인 상태를 나타내는 pending 상태
작업이 성공적으로 완료 되었음을 나타내는 fulfilled 상태
작업이 실패 되었음을 나타내는 rejected 상태
이렇게 3가지 라고 했는데요.

pending, fulfilled, rejected 상태

이 중에서 fulfilled 상태는 작업 성공 결과를 갖게 되고,
rejected 상태는 작업 실패 정보를 갖게 됩니다.

여기서 첫번째 then메소드를 보면 이때까지와 달리 총 두개의 콜백이 들어가 있습니다.

 then메소드에 두개의 콜백

일단 첫번째 콜백은 우리가 이때까지 배웠던것 처럼 Promise 객체가 fulfilled 상태가 될때 실행할 콜백입니다.

fulfilled 상태가 될때 실행할 콜백

그리고 Promise 객체가 rejected 상태가 될때 실행할 콜백입니다.

rejected 상태가 될때 실행할 콜백

만약 Promise 객체가 rejected 상태가 되을때 실행할 콜백을 설정하고 싶다면 then메소드에 2번째 파라미터로 원하는 콜백을
넣어주면 됩니다.

🤟여기서 또 한가지 중요한 사실

1번째 콜백은 Promise 객체가 fulfilled상태가 될때 실행 되기 때문에 그 파라미터로 Promise 객체의 작업성공 결과 가 넘어오지만

작업성공  결과 가 넘어옴

2번째 콜백은 Promise 객체가 rejected상태가 될때 실행 되기 때문에 그 파라미터로 작업 실패정보가 넘어옵니다.

작업 실패정보가 넘어옴

인터넷을 끊어서 일부러 에러를 내어봤습니다.
그리고 코드를 콘솔창에서 실행해보면 다음과 같이 에러 메세지가 나옵니다.
지금 보면 에러객체를 그대로 출력한 결과가 보입니다.
TypeError 라는 에러 객체가 fetch함수가 리턴했던 Promise 객체의 작업 실패 정보로 설정 되었다는 것을
알수 있습니다.

Promise  객체에 작업 실패 정보로 설정 됨

자 이번 살펴본것 처럼 Promise 객체가 rejected 상태가 되면 실행하고 싶은 콜백은 then메소드의 2번째 파라미터로 넣으면 됩니다.
그리고 Promise 객체가 정말 rejected 상태가 되면 해당 콜백에는 작업 실패 정보가 파라미터로 넘어온다는 사실을 꼭 기억하세요.!!

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.