비동기 처리를 위한 패턴으로 Promise 생성자 함수를 통해 인스턴스화 함
비동기 작업 완료 후 성공 혹 실패 값을 가진 Promise 객체를 생성하고 변수에 할당 후 반환
// Promise 객체 생성자
const promise = new Promise((resolve, reject) => { // 비동기 작업을 수행할 콜백함수
// 비동기 태스크
if () { // 비동기 작업 성공 시 resolve 메서드 호출
resolve("success");
}
else { // 비동기 작업 실패 시 reject 메서드 호출
reject("fail");
}
});
Promise 객체의 상태 정보
Promise 후속 처리 메서드
then
catch
Promise 체이닝
then
과 catch
로 메서드를 체이닝하여 여러 개의 Promise 사용 가능 → 콜백 헬 해결async function 함수명() {
await 비동기처리메서드명();
}
async
await
async
함수 내에서만 작동하며 Promise가 처리될 때까지 함수 실행을 기다리게 함async
함수 바깥의 최상위 레벨 코드에선 await
을 사용할 수 없어 처리되지 못한 에러를 .then/catch등으로 처리해야 함