NodeJS控制台SyntaxError:生成器的意外令牌*

NodeJS console SyntaxError: Unexpected token * for generator

本文关键字:意外 令牌 控制台 SyntaxError NodeJS      更新时间:2023-09-26

我正在运行NodeJS控制台:

$ node --version
v0.12.0

我正在尝试实现一个生成器函数,比如这个

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后面的节点中可用。

带有星号的函数在ECMAScript 6语法中。

function* name() 

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