NodeJS控制台SyntaxError:生成器的意外标记*

我正在运行NodeJS控制台:

$ node --version v0.12.0 

我试图实现一个发电机function,如这一个

 function* colorGen() { var colors = ["red", "green", "blue", "white"] var i = 0; yield colors[i]; i += 1; if (i > 3) {i = 0;} } 

但是当我运行第一行时,出现语法错误:

 $ node > function* colorGen() { SyntaxError: Unexpected token * at Object.exports.createScript (vm.js:44:10) at REPLServer.defaultEval (repl.js:117:23) at bound (domain.js:254:14) at REPLServer.runBound [as eval] (domain.js:267:12) at REPLServer.<anonymous> (repl.js:279:12) at REPLServer.emit (events.js:107:17) at REPLServer.Interface._onLine (readline.js:214:10) at REPLServer.Interface._line (readline.js:553:8) at REPLServer.Interface._ttyWrite (readline.js:830:14) at ReadStream.onkeypress (readline.js:109:10) > 

为什么发生这种情况?

发生器函数当前在标志--harmony_generators后面的节点中可用。 请参阅V8中实现的function和节点中的可用function 。

带星号的函数使用ECMAScript 6语法。

 function* name() 

我认为你的nodejs无法识别它。 在启动服务器时使用--harmony标志。