相关疑难解决方法(0)

如何迭代生成器函数的结果

有没有更好的方法可以迭代生成器的结果,我的for循环很丑陋:

for(let job = readyJob.next(); !job.done; job = readyJob.next()){ } 
Run Code Online (Sandbox Code Playgroud)

在上下文中,有一个生成器函数可以确定是否存在由1 .. *个作业组成的一批工作(生成器也可能在批处理中不返回任何作业)。有一个连续的循环实例化生成器并遍历批处理工作(记录)。

有没有更好的解决此迭代问题的方法。我的意思是,这看起来像Java / C#的传统迭代器,还不错。像“每个”这样的东西是超级可读的……无论如何,这就是我的希望。

 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()
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

然后

while(true){
    let readyJob = getReadyJob()

    for(let job = readyJob.next(); !job.done; job = readyJob.next()){
        console.log(JSON.stringify(job.value)) ;
    }
}
Run Code Online (Sandbox Code Playgroud)

javascript generator node.js ecmascript-6

1
推荐指数
1
解决办法
780
查看次数

标签 统计

ecmascript-6 ×1

generator ×1

javascript ×1

node.js ×1