for await ( of )

정태민·2023년 5월 15일
0

자바스크립트

목록 보기
10/12

// 비동기 REST API 함수
async function fetchPage(pageNumber) {

}

// 비동기 Generator 함수
async function* paginate(maxNum) {
let pageNumber = 1;
while (pageNumber < maxNum) {
try {
const data = await fetchPage(pageNumber);
yield data;
pageNumber++;
} catch (error) {
console.error('Error fetching page:', error);
break;
}
}
}

// 변수 할당
const paginatedDataGenerator = paginate();

// for await of 예시
(async () => {
for await (const data of paginatedDataGenerator) {
// Process the data
console.log('Received data:', data);

}
})();

generator는 next()를 호출해줘야 다음 생성을 하는데
for awit of를 사용하면 자동으로 next()를 호출해준다.

비동기식 이터러블로 작업하고 값을 소비하기 위한 더 깔끔한 구문을 원하는 경우 for await...of가 는 사용하기 적합한 옵션이라고 한다.
개인적으론 generator를 사용할거 아니면 절대 안쓸거같다.
예외 처리에 대한 세밀한 제어를 주로 원하고 Promise 해결 사이에 추가 논리를 도입해야 하는 경우 일반 for...of 루프를 사용하여 Promise를 개별적으로 await하는 것은 당연하다고생각함.

profile
퇴근후 30분 출근전 30분

0개의 댓글