[typescript] 비동기 이터레이션과 await for...of 문을 사용한 동기화 방법

본 포스트에서는 TypeScript에서의 비동기 이터레이션과 await for...of 문을 사용하여 비동기 작업을 동기화하는 방법에 대해 알아보겠습니다.

1. 비동기 이터레이션

비동기 이터레이션은 프로미스나 비동기 이터레이터를 순회할 수 있는 기능을 제공합니다. 이를 통해 비동기 작업을 동기적으로 처리할 수 있습니다.

async function* asyncGenerator() {
  yield 1;
  yield 2;
}

const asyncIterable = asyncGenerator();

for await (const item of asyncIterable) {
  console.log(item);
}

위 코드에서는 asyncGenerator 함수를 통해 비동기 이터레이터를 생성하고, for await...of 문을 사용하여 이를 순회하고 있습니다.

2. await for…of 문을 사용한 동기화

await for...of 문은 async/await와 함께 사용하여 비동기 이터레이터에서 순회하며 각 항목을 처리할 수 있습니다. 이를 통해 비동기 작업을 동기화하여 처리할 수 있습니다.

async function processData() {
  const asyncIterable = asyncGenerator();
  for await (const item of asyncIterable) {
    const result = await asyncFunction(item);
    console.log(result);
  }
}

위 코드에서는 asyncFunction을 호출하고, 각 항목에 대해 순차적으로 처리하고 있습니다.

이와 같이, await for...of 문을 사용하여 비동기 이터레이션을 동기화하고 처리하는 방법에 대해 알아보았습니다.

이제 TypeScript에서의 비동기 작업을 보다 효과적으로 처리할 수 있을 것입니다.