2015-05-25 6 views
4

Я бегу NodeJS консоль:NodeJS консоль SyntaxError: Неожиданный маркер * для генератора

$ 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) 
> 

Почему это происходит?

+0

Попробуйте без "*"? –

+0

проверить, если этот другой пост помогает http://stackoverflow.com/questions/28388885/ecmascript-6-features-available-in-node-js-0-12 –

+0

Как и tehnuty говорит, удалите звездочку. Возможно, вы кодер C/C++ - как и я - кому просто нужно больше кофе. –

ответ

3

Функции со звездочкой указаны в синтаксисе ECMAScript 6.

function* name() 

Я думаю, что ваш nodejs не может его распознать. Используйте флаг --harmony, когда вы запустите свой сервер.