14.1.3 async/await
async/await는 Promise를 더욱 쉽게 사용할 수 있도록 해 주는 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); } }