JavaScript/Nodejs

[Node.js] 콜백지옥 벗어나기 async / await

반응형

 

이전 글은 아래 링크를 통해 확인하실 수 있습니다

 

[Node.js] 콜백지옥 벗어나기 promise

Nodejs의 비동기처리? Nodejs는 Non-Blocking 방식으로 서버에 요청을 보냇을 때 응답이 올때까지 기다려주지 않습니다. 요청을 보내고 바로 다른일을 하다가 응답이 오면 해당 값을 사용할 수 있게 되

webaura.tistory.com

 

  async & await

async & await 은 가장 최근에 나온 비동기 처리 방식이며, 기존 방식인 Callback , Promise의 단점을 보안하고자 나온 방식입니다.

 

async & await 어떤원리?

함수 명 앞에 async 라고 명시를 해 두면 해당 함수 안에는 await 이라는 키워드를 사용할 수 있습니다.

해당 키워드는 Promise 의 해결을 기다린 후 처를 하도록 도와주는 방식 입니다.

 

일반 함수에 적용하는 법

async function asyncFun(){
	const user = await getUserData();
}

ES2015의 화살표함수에 적용하는법

const asyncFun = async () =>{
	const user = await getUserData();
}

 

위와같이 async&awiat 은 일반적으로 저희가 알고있는 함수 형태에 붙혀 사용하며,

ES2015의 화살표 함수에도 적용을 해서 사용을 하실 수 있습니다.

 

콜백지옥 탈출하는방법

const addStack = (order) =>{
    setTimeout(()=>{
        console.log(order);
    },500)
    return order;
}

const stacks = async () =>{
    const first = await addStack("에스프레소");
    const second = await addStack(first + " " + "물");
    const third = await addStack(second + " " + "얼을");
}

stacks();

 

이런식으로 간단하게 stacks 함수 안에서 위에서부터 동기적으로 작동을 하는것을 알 수 있습니다.

반응형