Cómo iterar sobre los resultados de una función generadora

¿Hay una mejor manera de iterar sobre los resultados de un generador? Mi bucle for es feo:

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

En contexto, hay una función de generador que puede determinar si hay un lote de trabajo, que consta de 1 .. * trabajos (el generador también puede no devolver ningún trabajo en el lote). Hay un bucle continuo que crea instancias del generador e itera sobre el lote haciendo trabajo en el trabajo (registro).

¿Existe una solución más elegante para este problema de iteración? Quiero decir que esto parece un iterador tradicional de Java / C # que no está mal. Algo así como un "cada uno" sería súper legible ... Esa es mi esperanza de todos modos.

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

entonces

while(true){
    let readyJob = getReadyJob()

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta