[JS] Async-Await 패턴을 위한 Promise 반환 함수 만들기

728x90

async await는 실무 하다보면 땔래야 땔 수 없는 패턴인데, 막상 신입들에게 promise 반환하는 함수를 직접 짜라고

하면 어디서 부터 해야 하는지 고민하는 경우가 종종 있어서, 간단하게 설명하려고 한다.

 

1. return 을 new Promise(resolve, reject) 로 하는 함수를 만든다.

2. Promise 안에 로직을 작성하고 try catch 로 reject를 잡아준다.

3. 로직 끝나면 resolve(result) 등으로 리턴값을 전달한다.

 

코드로 설명하면 다음과 같다

function somethingHappened() {
	return new Promise((res,rej) => {
        try{
        
			...
            여기에 무언가 로직을 작성한다.
            ...
            
        } catch (err) {
        	reject(err);
        }
        // Promise 중첩하는 경우가 많기 때문에 resolve 하나로 Promise 하나 빠져나간다는 것 기억해야함
        resolve(true);
    })
}

 

이렇게 하나 알아두면 이제 막 블로킹도 쉽게 할 수 있다.

async function 무슨일이냐() {
    await somethingHappened();
    await somethingHappened2();
    await somethingHappened3();
    ...
    ...
    
}

 

axios 같은 것도 까보면 다 똑같다.