从 Node JS 中的生成器获取返回值 [英] Getting the return value from a generator in Node JS
本文介绍了从 Node JS 中的生成器获取返回值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我似乎不知道如何获得生成器的返回值 - 有谁知道我做错了什么?
I can't seem to figure out how to get at the return value of a generator - anyone know what I am doing wrong?
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 才能运行此代码.
Note: You'll need node 0.11.12 running with the --harmony option for this code to run.
推荐答案
当 currentNext.done
为 true
时,curentNext.value
具有返回值.
When currentNext.done
is true
, curentNext.value
has the return value.
您可以将循环编写为:
var next;
while (!(next = generator.next()).done) {
var yieldedValue = next.value;
}
var returnValue = next.value;
这篇关于从 Node JS 中的生成器获取返回值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文