It seems to work by passing the current value back to the generator when I call .next:
function getGeneratorReturn() {
var generator = runGenerator();
var generatorReturn = null;
var done = false;
while(!done) {
var currentNext = generator.next(generatorReturn);
console.log('Current next:', currentNext);
generatorReturn = currentNext.value;
done = currentNext.done;
}
return generatorReturn;
}
function* runGenerator() {
var a = yield 1;
var b = yield 2;
var c = a + b;
return c;
}
var generatorReturn = getGeneratorReturn();
console.log(generatorReturn);
Note. To run this code, you will need node 0.11.12 with the --harmony option.
source
share