Wie man die Ergebnisse einer Generatorfunktion durchläuft

Gibt es eine bessere Möglichkeit, die Ergebnisse eines Generators zu durchlaufen, ist meine for-Schleife hässlich:

for(let job = readyJob.next(); !job.done; job = readyJob.next()){ } 

Im Kontext gibt es eine Generatorfunktion, die bestimmen kann, ob ein Stapel von Arbeit vorhanden ist, der aus 1 .. * Jobs besteht (der Generator gibt möglicherweise auch keine Jobs im Stapel zurück). Es gibt eine kontinuierliche Schleife, die den Generator instanziiert und über den Stapel iteriert, der die Arbeit am Job ausführt (Protokollierung).

ibt es eine elegantere Lösung für dieses Iterationsproblem? Ich meine, das sieht aus wie ein traditioneller Iterator aus Java / C #, was nicht schlecht ist. Sowas wie ein "jeder" wäre super lesbar ... Das ist jedenfalls meine Hoffnung.

 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()
        };
    }
}

dan

while(true){
    let readyJob = getReadyJob()

    for(let job = readyJob.next(); !job.done; job = readyJob.next()){
        console.log(JSON.stringify(job.value)) ;
    }
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage