- 비동기 함수는 비동기 처리 결과를 외부에 반환할 수 없고 상위 스코프의 변수에 할당할 수도 없다
- 비동기 함수의 처리 결과에 대한 후속 처리는 비동기 함수 내부에서 수행해야 함 → 콜백 함수를 전달
- 필요에 따라 비동기 처리가 성공하면 호출될 콜백 함수와 비동기 처리가 실패하면 호출될 콜백 함수를 전달할 수 있다.
프로미스의 생성
- Promise 생성자 함수를 new 연산자와 함께 호출하면 프로미스(Promise 객체)를 생성
- 비동기 처리를 수행할 콜백 함수를 인수로 전달 받음
이 콜백 함수는 resolve와 reject 함수를 인수로 전달받는다.
const promise = new Promise((resolve, reject) => {
if(/* 비동기 처리 성공 */){
resolve('result');
} else { /* 비동기 처리 실패 */
reject('failure reason');
}
});


- 프로미스는 비동기 처리 상태와 처리 결과를 관리하는 객체이다.
프로미스의 후속 처리 메서드
- 프로미스의 비동기 처리 상태가 변화하면 후속 처리 메서드에 인수로 전달한 콜백 함수가 선택적으로 호출됨