[Node.JS] Async Await 사용하기

2017. 6. 8. 22:55개발/Node.js

반응형

비동기 방식인 코딩을 하면서 콜백함수를 계속 호출하게 되면 코드의 가독성이 떨어진다.


또한, 일반 비동기 함수를 사용하게 되면 순차 실행이 보장되지 않는다.


ES7부터 지원되고, Node.JS v7부터 지원되는 Async Await을 활용하면 순차실행문을 만들 수 있다.


< Node.JS v4.4.5에서는 실행이 안된다.>





사용


1
2
3
4
async function asyncTest () {
  await function1();
  await function2();
}
cs


function 앞에 async 를 붙여주고, 순차적으로 실행해야할 함수를 호출할때 await을 붙여주면 된다.


대신 await는 async 함수내에서만 사용할 수 있다.


1
2
3
4
5
6
7
8
9
10
11
12
var Function1 = () => new Promise((resolve)=> {
  console.log('wow');
})
 
 
async function asyncTest () {
   function errFunc() {
      await Function1();
   };
   errFunc();
}
asyncTest();
cs



위와 같이 생성하게 되면 await 를 감싸는 함수가 async 함수가 아니어서 실행시킬 수 없다.








위와 같이 사용하려면 다음과 같이 await를 감싸는 함수도 async함수로 만들어 주면 된다.


1
2
3
4
5
6
7
8
9
10
11
12
var Function1 = () => new Promise((resolve)=> {
  console.log('wow');
})
 
 
async function asyncTest () {
   async function errFunc() {
      await Function1();
   };
   errFunc();
}
asyncTest();
cs





참고자료 및 출처


http://proinlab.com/archives/2138

반응형