더북(TheBook)

14.1.3 async/await

async/awaitPromise를 더욱 쉽게 사용할 수 있도록 해 주는 ES2017(ES8) 문법입니다. 이 문법을 사용하려면 함수의 앞부분에 async 키워드를 추가하고, 해당 함수 내부에서 Promise의 앞부분에 await 키워드를 사용합니다. 이렇게 하면 Promise가 끝날 때까지 기다리고, 결과 값을 특정 변수에 담을 수 있습니다.

function increase(number) {
const promise = new Promise((resolve, reject) => {
  // resolve 성공, reject 실패
  setTimeout(() => {
    const result = number + 10;
    if (result > 50) { // 50보다 높으면 에러 발생시키기
      const e = new Error('NumberTooBig');
              return reject(e);
    }
          resolve(result); // number 값에 +10  성공 처리
  }, 1000)
});
return promise;
}
 
async function runTasks() {
try { // try/catch 구문을 사용하여 에러를 처리합니다.
  let result = await increment(0);
  console.log(result);
  result = await increment(result);
  console.log(result);
  result = await increment(result);
  console.log(result);
  result = await increment(result);
  console.log(result);
  result = await increment(result);
  console.log(result);
  result = await increment(result);
  console.log(result);
} catch (e) {
  console.log(e);
}
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.