Promise

자바스크립트는의 비동기 처리에 사용되는 객체이다.

비동기 처리

setTimeout(function(){
    console.log('안녕');
},3000);
console.log('하세요');
  • 3초 뒤, '안녕' 출력
  • '하세요' 출력

위처럼 순서대로 실행되는 것이 아니라 실제로는 아래처럼 실행된다.

  • '하세요' 출력
  • 3초 뒤, '안녕' 출력

비동기 처리는 이처럼 특정 코드의 실행이 완료될 때까지 기다리지 않고 다음 코드를 수행한다.

Promise의 상태

  1. Pending : 대기 상태
  2. Fulfilled : 이행 상태
  3. rejected : 실패 상태
function jqeuryAjax(){
    return new Promise((resolve, reject)) => { //new Promise()를 호출하여 대기 상태
        jquery.ajax({
            ...
            },
            success: (result) => {
                resolve(result); //resolve()를 실행하여 이행 상태
            },
            error: (error)=>{
                reject(error); //reject()를 실행하여 실패 상태
            }
        });
    }
}
jqeuryAjax().then((result) => { //이행된 결과값을 then()으로 받음
    console.log(result); 
}).catch((error) => { // 실패한 결과값을 catch()로 받음
    console.log(error) 
});