Iterators and Generators
Lazy Take Model
Stop consuming a generator after enough values.
Lazy Take Model
lazy_take_model.js
const take = 2;
const values = [];
function* squares() {
let current = 1;
while (current <= 5) {
yield current * current;
current = current + 1;
}
}
for (const value of squares()) {
if (values.length >= take) {
break;
}
values.push(value);
}
console.log("take=" + take);
console.log("values=" + values.join(","));
lazy-take-model
A generator can describe a longer sequence while the caller decides how many values to read.