"값마다 Promise. Type system 이 이해하는 stream."
Async iterable 이 뭐
Async iterable 이 `async next(): Promise<{ value: T; done: boolean }>` method 있는 object 반환하는 [Symbol.asyncIterator]() method 가진 object. for await (const x of stream) 가 그걸 walk, 각 값 await 한 후 계속.
이게 Node.js stream, file line iterator, HTTP-server request body 가 타입 붙는 법. 시간이 지나 도착하는 일련의 값 있는 어디든 async iterable 이 canonical 모양.
Promise yield 하는 generator
Async iterable 만드는 가장 쉬운 방법이 async generator: async function* gen(): AsyncIterable. 각 `yield` 가 stream 의 한 값 만듦; generator 안 await 가 값 준비될 때까지 pause.
Promise 와의 차이
`Promise