有没有更好的方式来遍历生成器的结果,我的for循环看起来很丑陋:
for(let job = readyJob.next(); !job.done; job = readyJob.next()){ }
在这个场景中,有一个生成器函数,可以确定是否存在由1..*个作业组成的工作批次(生成器也可能不返回批次中的任何作业)。有一个连续的循环,实例化生成器并迭代处理作业批次(记录日志)。
这个迭代问题是否有更优雅的解决方案?我的意思是,这看起来像是来自Java/C#的传统迭代器,这并不是不好。类似于“each”的东西会更易读... 这是我希望的。
let getReadyJob = function *(instance){
let numJobs = 7 ; // getRandomInt(0, 10) ;
for(let i = 0; i < numJobs; i++) {
yield {
jobId: '' + instance + '::' + i,
jobReadyOn: (new Date()).valueOf()
};
}
}
然后
while(true){
let readyJob = getReadyJob()
for(let job = readyJob.next(); !job.done; job = readyJob.next()){
console.log(JSON.stringify(job.value)) ;
}
}