【发布时间】:2018-01-13 15:25:51
【问题描述】:
目标:
我想创建一个在setInterval() 和console.log 1 到10 中调用的生成器函数。
问题:
为了最后clearInterval(),我需要一个条件来检查gen.next().done === true。
但每次条件运行时,它实际上都会调用另一个.next()
所以我得到的最终打印是:
1 3 5 7 9 undefined
如何在不调用 .next() 的情况下设置 done == true 条件?
function* myGen(){
let counter = 0;
for(let i = 0 ; i <= 10; i++){
yield counter++;
}
}
const gen = myGen();
const start = setInterval(() => {
if(gen.next().done){
clearInterval(start);
} else {
console.log(gen.next().value);
}
}, 1500)
【问题讨论】:
标签: javascript generator setinterval