Promise 객체는 3가지 상태 중에 하나를 가진다.
대기(pending): 아직 작업이 완료되지 않은 상태 또는 초기 상태
이행(fulfilled): 작업이 성공적으로 완료된 상태
거부(rejected): 작업 수행 중, 어떠한 요인으로 인해 실패한 상태
작업이 성공적으로 완료되면 Promise.resolve() 메소드를 통해 결과 값으로 이행하는 Promise 객체를 반환한다.
작업이 실패(에러) 되면 Promise.reject() 메소드를 통해 거부하는 Promise 객체를 반환한다.
실제 서비스를 구현하다 보면 네트워크 연결, 서버 문제 등으로 인해 오류가 발생할 수 있다.
프로미슷의 에러 처리 방법에는 2가지 방법이 있다.
then()catch()개개인의 코딩 스타일에 따라서 then()의 두 번째 인자로 처리할 수도 있고 catch()로 처리할 수도 있겠지만 가급적 catch()로 에러를 처리하는 게 더 효율적이다. catch()는 더 많은 예외 처리 상황을 위해 사용된다.