我在 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()
时,主体将被执行,您将获得值并维护上下文。
你可以做到
let i= gen()
console.log(i.next())
您将获得所需的行为。
引用这个: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/function *
关于node.js - next() 不是无法在 NodeJS 中使用生成器的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43843747/