이 문서에서는 TypeScript에서 for...of
문과 await
키워드를 함께 사용하여 비동기 이터레이션을 수행하고 데이터를 검증하는 방법에 대해 알아보겠습니다.
1. for...of
와 await
를 함께 사용하는 방법
일반적으로 배열 또는 이터러블 객체의 모든 아이템에 대해 동기적으로 작업을 수행하는 경우, for...of
구문을 사용합니다. 그러나 비동기 작업을 수행하는 경우에는 await
키워드를 함께 사용하여 각 아이템에 대한 작업이 완료될 때까지 기다릴 수 있습니다.
다음은 for...of
와 await
를 함께 사용하는 예제 코드입니다.
async function processData(data: SomeType[]): Promise<void> {
for await (const item of data) {
// 비동기 작업 수행
await processItem(item);
}
}
위 예제 코드에서 processData
함수는 data
배열의 각 아이템에 대해 비동기적으로 processItem
함수를 호출합니다. for await...of
구문을 사용하여 각 아이템에 대한 작업이 완료될 때까지 기다립니다.
2. 데이터 검증을 위한 비동기 이터레이션
for...of
와 await
를 함께 사용하여 데이터를 검증하는 예제를 살펴보겠습니다.
interface ValidationResponse {
valid: boolean;
message: string;
}
async function validateData(data: SomeType[]): Promise<ValidationResponse> {
for await (const item of data) {
const isValid = await validateItem(item);
if (!isValid) {
return { valid: false, message: `Validation failed for item: ${item}` };
}
}
return { valid: true, message: 'All items are valid' };
}
위 예제 코드에서 validateData
함수는 data
배열의 각 아이템에 대해 validateItem
함수를 호출하여 데이터를 검증합니다. 만약 하나의 아이템이라도 유효하지 않을 경우 검증에 실패한 메시지를 반환하고, 모든 아이템이 유효할 경우 성공 메시지를 반환합니다.
이러한 방식으로 for...of
와 await
를 함께 사용하여 데이터를 비동기적으로 검증할 수 있습니다.
결론
이 문서에서는 TypeScript에서 for...of
와 await
를 함께 사용하여 비동기 이터레이션을 수행하고 데이터를 검증하는 방법에 대해 살펴보았습니다. 이를 통해 비동기 작업을 수행하면서 각 아이템에 대한 검증을 쉽게 처리할 수 있습니다.
더 많은 정보를 원하시면 TypeScript 공식 문서를 참고하시기 바랍니다.
참고 문헌: