[typescript] 타입스크립트에서 비동기 이터레이션을 사용하는 대표적인 예시

TypeScript에서 비동기 이터레이션을 구현하기 위해 GeneratorAsyncIterator를 사용하는 것이 일반적입니다.

Generator

Generator는 함수의 실행을 중간에 멈추고 재개할 수 있는 기능을 제공합니다.

다음은 Generator를 사용하여 간단한 비동기 이터레이터를 구현하는 예시입니다.

function* asyncGenerator() {
  let i = 0;
  while (i < 3) {
    yield new Promise<number>((resolve) =>
      setTimeout(() => resolve(i++), 1000)
    );
  }
}

const iterator = asyncGenerator();

AsyncIterator

AsyncIterator는 비동기 이터레이션을 위한 인터페이스입니다.

다음은 AsyncIterator를 사용하여 앞서 구현한 Generator를 비동기적으로 순회하는 예시입니다.

async function iterateAsyncIterator() {
  for await (const item of asyncGenerator()) {
    console.log(item);
  }
}

iterateAsyncIterator();

이처럼 GeneratorAsyncIterator를 조합하여 TypeScript에서 비동기 이터레이션을 쉽게 구현할 수 있습니다.

더 자세한 내용은 공식 TypeScript 문서를 참고하세요.