Kir*_*met 4 javascript yield generator node.js
我似乎无法弄清楚如何获得发电机的返回值 - 任何人都知道我做错了什么?
function getGeneratorReturn() {
var generator = runGenerator();
var generatorReturn = null;
var done = false;
while(!done) {
var currentNext = generator.next();
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); // Should output 3, is outputting NaN
Run Code Online (Sandbox Code Playgroud)
注意:您需要运行带有--harmony选项的节点0.11.12才能运行此代码.
Fel*_*ing 13
如果currentNext.done是true,curentNext.value有返回值.
您可以将循环编写为:
var next;
while (!(next = generator.next()).done) {
var yieldedValue = next.value;
}
var returnValue = next.value;
Run Code Online (Sandbox Code Playgroud)