긍정적인 사고와 행동으로 선한 영향력을 줄 수 있도록

JavaScript

[JavaScript] Promise

리거니 2022. 1. 19. 15:19

비동기식 함수중 대표적으로 Promise 가 있다.

Promise

- 비동기적인 동작에서 callback의 사용을 줄일 수 있다. ( 지속적으로 처리를 해야 되기때문에 콜백함수를 계속 선언해  야하는 지옥에서 탈출 )

  • Pending : 객체가 생성되었지만 작업은 완료되지 않는 상태. 파라미터로 resolve( ) 또는 reject( ) 함수를 받는다.
  • Fulfilled : 작업이 성공하여 완료된 상태. resolve( ) 를 호출한다, Promise를 사용하는 측에서는 then( )으로 받는다.
  • Rejected : 작업이 실패한 상태. reject( )를 호출한다, catch( )로 받을 수 있다.

 


Promise 단독 사용

function test(value){
	// Promise는 항상 resolve, reject 두개의 파라미터를 받는다.
    return new Promise((resolve, reject)=>{
        if(value>=0)
            resolve('ok');
        else
            reject('error');
    });
}

test(1)
.then((result)=>{ console.log(result); })
.catch((error)=>{ console.log(error); })

 

Chaining

// test를 통과하면 test2 실행, test2 성공하면 test3 실행하는 방식 

function test(value){
    return new Promise((resolve, reject)=>{
        if(value>=0)
            resolve('ok');
        else
            reject('error');
    });
}

function test2(value){
    return new Promise((resolve, reject)=>{
        console.log('test2' + value);
        resolve('finished');
    });
}

function test3(value){
    console.log(value);
}

test(1)
.then(test2)
.then(test3)
.catch((error)=>{ console.log(error); })

'JavaScript' 카테고리의 다른 글

[JavaScript] 클래스와 상속  (0) 2022.01.19
[JavaScript] 동기 , 비동기  (0) 2022.01.19
[JavaScript] Async와 await  (0) 2022.01.19
[JavaScript] 함수 선언식과 표현식  (0) 2022.01.19