for await (const transaction of streamTransactions()) {
}
streamTransactions()는 async iterable이어야 하고, 그 안에서 보통 yield, yield + await을 사용하는 (async) generator로 구현되어 있다.for...of vs for await...offor (const x of iterable) {
// iterable[Symbol.iterator]() 사용
}
iterable[Symbol.iterator()]를 호출해서 동기 iterator를 얻고,next()를 계속 호출하면서 { value, done }를 받아서 루프를 돎next() 호출은 즉시 값을 반환해야 함 (Promise 말고 그냥 값)for await...of