[typescript] async/await와 함께 사용하는 제너레이터 함수
TypeScript는 JavaScript의 확장된 기능을 제공하며, 최신 JavaScript 기능을 활용하여 비동기 코드를 더 쉽게 작성할 수 있습니다. 이러한 비동기 코드를 작성할 때 async/await와 함께 제너레이터 함수를 사용하는 방법에 대해 알아보겠습니다.
1. 제너레이터 함수란?
제너레이터 함수는 함수 실행을 일시 중지하고 나중에 재개할 수 있는 개념을 제공합니다. 이를 통해 비동기 작업을 보다 쉽게 처리할 수 있습니다.
function* generatorFunction() {
yield '첫 번째 값';
yield '두 번째 값';
yield '세 번째 값';
}
위 코드에서 generatorFunction
은 제너레이터 함수로, yield
키워드를 사용하여 값을 생성합니다.
2. async/await와 함께 사용하는 방법
제너레이터 함수와 async/await를 함께 사용하여 비동기 코드를 작성할 수 있습니다.
async function asyncGeneratorFunction() {
const result1 = await someAsyncOperation1();
yield result1;
const result2 = await someAsyncOperation2();
yield result2;
}
위의 코드에서 asyncGeneratorFunction
은 async 키워드와 함께 제너레이터 함수로 작성되었습니다. await
키워드를 사용하여 비동기 작업의 완료를 기다린 후 값을 생성합니다.
3. 사용 예시
async function asyncGeneratorExample() {
const generator = asyncGeneratorFunction();
const result1 = await generator.next(); // result1에는 someAsyncOperation1의 결과가 담깁니다.
const result2 = await generator.next(); // result2에는 someAsyncOperation2의 결과가 담깁니다.
console.log(result1.value, result2.value);
}
asyncGeneratorExample();
위의 코드는 asyncGeneratorExample 함수를 호출하여 asyncGeneratorFunction에서 생성된 값을 순차적으로 얻어와 콘솔에 출력하는 예시입니다.
제너레이터 함수와 async/await를 함께 사용하여 코드를 더 읽기 쉽고 관리하기 쉽게 작성할 수 있습니다.
이러한 TypeScript의 기능을 활용하여 보다 효율적으로 비동기 코드를 다룰 수 있습니다.
참고 자료: