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

TypeScript에서 배열과 같은 데이터 구조를 이터레이션하며 비동기 처리를 수행해야 하는 경우가 있습니다. 이때 ‘await for…of’ 루프를 사용하여 비동기 작업을 각 항목에 대해 순차적으로 처리할 수 있습니다.

이 블로그 포스트에서는 TypeScript에서 ‘await for…of’ 루프를 사용하여 데이터를 필터링하는 방법에 대해 알아보겠습니다.

1. ‘await for…of’ 루프란 무엇인가요?

‘await for…of’ 루프는 비동기 이터레이션을 수행하는 데 사용됩니다. 이 루프를 사용하면 비동기 작업을 각 항목에 대해 순차적으로 수행하고, 각 항목의 결과를 기다릴 수 있습니다. 이는 데이터 필터링 및 다른 비동기 작업을 처리하는 데 유용합니다.

2. ‘await for…of’ 루프를 사용한 데이터 필터링 방법

다음은 ‘await for…of’ 루프를 사용하여 배열을 필터링하는 간단한 예제 코드입니다.

async function filterData(data: SomeType[]) {
  const filteredData: SomeType[] = [];

  for await (const item of data) {
    const isValid = await validateItem(item);
    if (isValid) {
      filteredData.push(item);
    }
  }

  return filteredData;
}

위 예제 코드에서는 filterData 함수를 사용하여 배열의 각 항목을 순회하고, validateItem 함수를 사용하여 각 항목을 유효성 검사한 후 유효한 항목만 filteredData 배열에 추가합니다. 이때 ‘await for…of’ 루프를 사용하여 각 항목에 대해 비동기 처리를 수행하고, 각 항목의 처리를 기다립니다.

3. 결론

TypeScript에서 ‘await for…of’ 루프를 사용하여 데이터를 필터링하는 방법에 대해 알아보았습니다. 이를 통해 배열 등의 데이터 구조를 이터레이션하고, 각 항목에 대해 비동기 처리를 수행하는 방법을 익힐 수 있었습니다. 이를 응용하여 다양한 비동기 작업을 수행할 수 있으며, 좀 더 효과적인 데이터 처리를 위한 기초를 마련할 수 있습니다.

참고 자료: MDN Web Docs - for await…of