next()不是无法在NodeJS中使用生成器的函数

我在NodeJS 7.10.0中使用下面的代码:

function * gen(){ yield 100; yield 200; yield 300 } console.log(gen.next()); 

我得到这个回报:

 TypeError: gen.next is not a function at Object.<anonymous> (/Files/development/learning/node-bits/generators.js:15:17) at Module._compile (module.js:571:32) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:488:32) at tryModuleLoad (module.js:447:12) at Function.Module._load (module.js:439:3) at Module.runMain (module.js:605:10) at run (bootstrap_node.js:427:7) at startup (bootstrap_node.js:151:9) at bootstrap_node.js:542:3 

当你调用一个生成器函数时,它的主体不会被执行。 相反,它会返回一个迭代器对象。 当你调用iterator.next()时,body被执行,你得到的值和上下文被维护。

你可以做-

让我= gen()

console.log(i.next()),你会得到所需的行为。
参考这个 – https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/function *

您应该将gen的输出分配给一个variables, next在返回的值上调用next

 const out = gen(); console.log(out.next()); console.log(out.next()); console.log(out.next()); console.log(out.next());