비동기 이터레이터와 for await of

파일 스트림, 웹소켓 메시지, DB 커서처럼 시간이 지나며 도착하는 값을 동기 반복문처럼 읽게 해준다.

1

비동기 반복 가능 객체

`Symbol.asyncIterator`를 제공하는 객체

2

비동기 반복자

`next()`가 Promise를 반환

3

대기 지점

Promise가 `{value, done}`으로 풀릴 때까지 대기

4

루프 본문

값을 처리하고 done이 true면 종료

핵심비동기 이터레이터와 for await of은 각 요소의 관계와 선택 조건을 함께 읽어야 한다.