consumer loop
for await가 iterator.next를 순서대로 호출합니다.
소비자가 다음 값을 요청하면 Promise가 해결될 때까지 기다렸다가 값을 하나씩 처리하는 흐름입니다.
for await가 iterator.next를 순서대로 호출합니다.
값 준비 전에는 루프 본문이 멈춰 있습니다.
생산자가 준비된 값을 하나씩 넘깁니다.
본문에서 값을 처리한 뒤 다음 요청으로 넘어갑니다.
더 이상 값이 없으면 루프가 끝납니다.
비동기 반복은 여러 Promise를 한꺼번에 던지는 것이 아니라 생산 속도와 소비 속도를 맞춰 순차 처리하는 방식입니다.