async
와 await
는 JavaScript에서 비동기 코드를 보다 간편하고 동기적으로 작성할 수 있도록 하는 문법적인 기능입니다. async
함수 내에서 await
키워드를 사용하여 비동기 작업의 완료를 기다릴 수 있습니다.
async 함수:
async
함수는 비동기적인 작업을 수행하고, Promise를 반환하는 함수입니다. async
키워드를 함수 앞에 붙여서 함수를 선언합니다. async
함수 내에서는 await
키워드를 사용하여 Promise가 처리되기를 기다리거나, 다른 async
함수를 호출할 수 있습니다.
async function fetchData() {
// 비동기 작업 수행
const data = await fetchSomeData(); // Promise의 처리를 기다림
return data;
}
fetchData()
.then(function(data) {
console.log('Data:', data);
})
.catch(function(error) {
console.error('Error:', error);
});
위의 예제에서 fetchData
함수는 async
함수로 선언되어 있습니다. await
키워드는 fetchSomeData
함수가 반환하는 Promise가 처리될 때까지 기다립니다. 그 후에는 비동기 작업의 결과를 반환합니다.
await 키워드:
await
키워드는 async
함수 내에서만 사용될 수 있으며, Promise가 처리될 때까지 실행을 일시 중지합니다. 이를 통해 비동기 작업을 동기적인 코드 스타일로 작성할 수 있습니다.
async function fetchData() {
const data1 = await fetchSomeData1();
const data2 = await fetchSomeData2();
return [data1, data2];
}
위의 예제에서 fetchData
함수는 await
키워드를 사용하여 fetchSomeData1
함수와 fetchSomeData2
함수가 처리될 때까지 기다립니다. 그 후에는 두 개의 데이터를 배열로 반환합니다.
async
와 await
를 사용하면 콜백이나 Promise 체인을 사용하는 것보다 코드를 보다 선언적이고 동기적으로 작성할 수 있습니다. 이를 통해 비동기 코드의 가독성과 유지보수성을 향상시킬 수 있습니다.