Promise
- ES2015에 도입된 비동기 처리 시점을 명확하게 표현할 수 있는 객체
- 비동기 작업이 끝난 뒤 결괏값(성공 또는 실패)을 처리 할 수 있음
- Promise는 비동기 작업이 끝난 뒤 결괏값(성공 또는 실패)를 처리할 수 있는 객체
- Promise 생성자 함수를 통해 인스턴스화, 생성자 함수에 전달되는 함수는 실행자(executor)라고 함
const p = new Promise((resolve, reject) => {
})
- 실행자 함수는 매개변수로 자바스크립트에서 제공하는 함수인 resolve()와 reject()를 가짐
- 비동기 작업이 성공적으로 실행되었을 경우 결괏값과 함께 resolve() 함수를 호출,
실패시 reject()를 호출
- 실행자에서는 reject()나 resolve()를 반드시 호출
- reject()나 resolve()를 중복해서 호출하며 무시
const p = new Promise((resolve, reject)=> {
resolve(100);
resolve(200);
});
- Promise 객체는 상태를 나타내는 state Property를 가짐
- 총 3개의 상태를 가질 수 있으며, 각 상태는 상호 배타적 관계
- 작업이 성공적으로 종료되었음을 의미하는 이행(fullfiled)과 작업이 실패했다는 것을 의미하는 거부(rejected), 작업이 이행되거나 거부되지 않은 초기 단계를 의미하는 보류(pending)이 있음