JavaScript/JavaScript 기초

[Javascript ES6] 기초 문법 14. Promise

찰리-누나 2022. 12. 21.

 

 

 

 Promise



Promise는 성공과 실패 여부를 판정하여 저장할 수 있도록 도와주는 문법이다. promise 객체를 하나 생성해주고, 성공과 실패를 판정하는 콜백함수를 작성해 준 다음 .then을 사용해 성공 및 실패 여부에 따라 실행할 문장을 작성할 수 있다. then은 성공 시 실행되는 문장이며, catch는 실패했을 때 실행될 문장을 가리킨다.


<script>

    // promise = 성공/실패를 판정해 저장한다.
    let promise = new Promise(function(성공,실패){
        let plus = 1+2+3+4+5+6+7+8+9+10;
        // 파라미터로 전해준 정보는 then까지 전달된다.
        성공(plus);
    })

    promise.then(function(result){
        console.log('프로미스 성공: ',result)
    }).catch(function(){
        console.log('프로미스 실패')
    })

    
</script>

 

 

프로미스에는 resolved, pending, rejected라는 세 개의 상태가 있다.

resolved  성공 상태
pending 판정 대기 상태
rejected 실패 상태

 

아래의 코드로 5초 뒤에 성공, 또는 실패 판정을 하는 코드를 실행해보자. login에 false를 주었기 때문에 반드시 실패 판정을 저장하는 코드이다.



<script>

    let login = false;

    // promise = 성공/실패를 판정해 저장한다.
    let promise = new Promise(function(성공,실패){
        if(login) {
            setTimeout(function(){
                성공(login)
            },5000)            
        } else {
            setTimeout(function(){
                실패(login)
            },5000)
        }
    })

    promise.then(function(result){
        console.log('프로미스 성공: ',result)
    }).catch(function(){
        console.log('프로미스 실패')
    })

    
</script>

프로미스의 상태가 pending에서 rejected 로 변했다.

 

댓글