for await...of는 다음 값을 요청하고 준비될 때까지 기다린다
비동기 반복은 여러 Promise를 한꺼번에 던지는 것이 아니라 생산 속도와 소비 속도를 맞춰 순차 처리한다.
for await가 iterator.next를 순서대로 호출한다.
Promise가 해결될 때까지 루프 본문이 멈춘다.
준비된 값을 하나씩 처리한다.
더 이상 값이 없으면 반복을 종료한다.
| 구분 | 의미 | 판단 |
|---|---|---|
| 생산자 | async function* | 늦게 도착하는 값을 yield |
| 소비자 | for await...of | 순서를 보존하며 처리 |
| 정리 | return/throw/finally | 중간 실패와 자원 해제를 표현 |
핵심 for await...of는 병렬 처리 문법이 아니라 비동기 iterable의 값을 하나씩 기다리며 소비하는 계약이다.