(849~863)
- ECMAScript 사양에 정의된(ES6) 표준 빌트인 객체(== 네이티브 객체)
- 프로미스 생성자는 콜백함수를 받고, 그 콜백함수는 resolve와 reject 함수를 인자로 전달받는다.
- 비동기 처리가 성공
fullfilled
하면 resolve, 실패rejected
하면 reject 함수 에 비동기 처리 결과를 인수로 넘기며 실행한다.- 이전까지의 비동기 처리문제(콜백 헬, 에러 처리의 어려움)을 프로미스 메서드(then, catch)의 체이닝으로 해결한다.
then
fullfilled
하면 실행할 resolve, 실패rejected
하면 실행할 rejectcatch
finally
프로미스의 비동기처리 성공fullfilled
/실패rejected
와 상관 없이 무조건 호출됨
then, catch와 마찬가지로 항상 프로미스를 반환
프로미스 체이닝을 이용하면 콜백 헬이 발생하지 않지만, 프로미스도 콜백 패턴을 사용하므로 콜백 함수를 사용하지 않는 것은 아니다.
⇒ ES8에서 도입된 async/await에서 해결
rejected
하면 나머지의 처리를 기다리지 않고 즉시 종료된다