더북(TheBook)

이번에는 이전 절에서 작성한 doubleasync, await 문법과 함께 사용해봅시다.

function double(number) {
  const promise = new Promise((resolve, reject) => {
    setTimeout(() => {
      if (typeof number !== 'number') {
        reject(new Error('Parameter is not valid'))
        return;
      }
      const result = number * 2;
      console.log(`${number} * 2 = ${result}`);
      resolve(result);
    }, 500)
  })
  return promise;
}

async function process() {
  let result = 1;
  result = await double(result);
  result = await double(result);
  result = await double(result);
  result = await double(result);
  return result;
}

process().then(
  result => {
    console.log(`최종 결과: ${result}`)
  }
)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.