[typescript] async/await와 동시성 제어
자바스크립트에서 비동기 작업을 처리할 때 주로 콜백 함수나 Promise를 사용합니다. 그러나 async/await 구문을 사용하면 코드를 더 읽기 쉽게 만들 수 있고, 동시성을 제어하는데도 도움이 됩니다.
Async/Await란?
Async/Await는 자바스크립트에서 비동기 처리를 위한 신택스 슈거입니다. async 키워드로 함수를 정의하면, 그 함수는 Promise를 리턴합니다. 이 함수 안에서 await 키워드를 사용하여 다른 Promise가 처리될 때까지 기다릴 수 있습니다.
동시성 제어
Async/Await를 사용하면 여러 비동기 작업을 순차적으로 실행할 수 있습니다. 일련의 작업들 간의 의존성을 쉽게 다룰 수 있습니다. 또한 try/catch 문을 이용하여 에러 핸들링을 쉽게 할 수 있습니다.
async function fetchData() {
try {
const data1 = await getData1();
const data2 = await getData2(data1);
return processData(data1, data2);
} catch (error) {
console.error('Error during data fetching:', error);
throw error;
}
}
위의 예제에서 getData1과 getData2 함수는 순차적으로 실행되며, 첫 번째 함수의 결과가 두 번째 함수에 전달됩니다. 에러 핸들링 역시 간편하게 처리됩니다.
마무리
Async/Await는 자바스크립트에서 비동기 코드를 쉽게 다루고 동시성을 제어하는데 효과적인 방법입니다. 함수를 읽고 이해하기 쉽게 만들어주며, 복잡한 비동기 흐름을 보다 쉽게 다룰 수 있습니다.
자세한 내용은 MDN Web Docs, TypeScript 공식 문서를 참고할 수 있습니다.