[typescript] await for...of 문을 사용하여 비동기 작업의 결과를 이메일로 보내는 방법
일반적으로 TypeScript에서 Promise 기반의 비동기 작업을 처리할 때 await 키워드를 사용합니다. 하지만 때때로 여러 비동기 작업을 순차적으로 처리하고 결과를 조합하여 작업을 수행해야 할 때가 있습니다. 이러한 상황에서 await for…of문을 사용하여 간결하고 효율적으로 비동기 작업을 처리할 수 있습니다.
for…of 문을 사용하여 비동기 작업 처리하기
우선, 이메일 보내기와 관련된 비동기 작업을 수행하는 함수가 있다고 가정해 봅시다. 이 때 이 함수는 Promise를 반환합니다. 다음은 해당 함수의 예시입니다.
async function sendEmail(email: string, content: string): Promise<void> {
// 이메일을 보내는 비동기 작업 수행
// ...
}
이제 await for…of문을 사용하여 여러 이메일을 보내는 작업을 처리하는 예제를 살펴보겠습니다.
const emailsToSend = [
{ email: 'recipient1@example.com', content: '메일 내용 1' },
{ email: 'recipient2@example.com', content: '메일 내용 2' },
// ...
];
async function sendAllEmails(emails: { email: string; content: string }[]): Promise<void> {
for (const { email, content } of emails) {
await sendEmail(email, content);
console.log(`이메일을 보냈습니다: ${email}`);
}
}
sendAllEmails(emailsToSend)
.then(() => {
console.log('모든 이메일을 성공적으로 보냈습니다.');
})
.catch((error) => {
console.error('이메일 전송 중 오류가 발생했습니다:', error);
});
결과
await for…of문을 사용하여 여러 비동기 작업을 처리하면 작업이 순차적으로 실행되며, 각각의 작업의 결과를 조합하거나 추가적인 작업을 수행할 수 있습니다.
이 방법을 사용하면 병목 현상을 피하고 메모리 사용량을 줄일 수 있어서 대규모의 작업에서 유용하게 활용할 수 있습니다.
이제 여러분도 await for…of문을 활용하여 TypeScript에서 비동기 작업의 결과를 이메일로 보내는 방법을 익혔습니다.