생산자는 다음 값을 약속
next()가 Promise로 IteratorResult를 돌려주고, 완료 시
done을 명확히 보냅니다.
값의 타입만 맞아도 생산자 정리, 소비자 중단, 오류 전파가 빠지면 스트림 코드는 오래 버티기 어렵습니다.
next()가 Promise로 IteratorResult를 돌려주고, 완료 시
done을 명확히 보냅니다.
루프 본문은 각 값을 처리한 뒤 다음 요청으로 넘어가므로 backpressure가 자연스럽습니다.
for await...ofbreak, throw, 연결 종료 같은 상황에서 파일 핸들러나 구독을 닫아야 합니다.
return 또는 finally루프가 일찍 끝나도 생산자가 멈추고, 오류가 호출자에게 전달되며, 값 타입이 좁혀지는지 확인합니다.