我似乎无法弄清楚如何获取生成器的返回值 - 有人知道我做错了什么吗?
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
注意:您需要使用 --harmony 选项运行节点 0.11.12 才能运行此代码。
When currentNext.done
is true
, curentNext.value
有返回值。
您可以将循环编写为:
var next;
while (!(next = generator.next()).done) {
var yieldedValue = next.value;
}
var returnValue = next.value;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)