TypeScript - Iterators, Iterables & Async Iterators
Iterables
const nums = [1,2,3];
for (const n of nums) console.log(n);
Custom iterator
const range = {
*[Symbol.iterator](){
for (let i=0;i<3;i++) yield i;
}
};
for (const n of range) {/* 0,1,2 */}
Async iterators
async function* stream() {
yield 1; await new Promise(r=>setTimeout(r,10)); yield 2;
}
for await (const x of stream()) { /* 1 then 2 */ }