是否可以在节点v0.12.0中使用生成器

Is it possible to use generators in node v0.12.0?

本文关键字:节点 v0 是否      更新时间:2023-12-09

我以为节点v0.12.0会支持生成器,但我无法让它工作。不幸的是,我还没有找到任何关于生成器是否受支持的明确声明。

这就是我尝试的:

# example.js
"use strict";
function simpleGenerator(){
  yield "first";
  yield "second";
  yield "third";
  for (var i = 0; i < 3; i++)
    yield i;
}

执行失败,因为不支持yield关键字:

$ node --version`
v0.12.0
$ node example.js 
/tmp/example.js:4
  yield "first";
  ^^^^^
SyntaxError: Unexpected strict mode reserved word
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

设置--harmony标志也不起作用:

$ node --harmony example.js
   ... the identical error ...

排除"use strict"也失败。它只会导致另一条错误消息:"Unexpected string"

正如aarosil所指出的,需要一个星号。。你需要和谐旗。另外,关于0.12.0中支持的ES6功能,请参阅此问题:Node.js 0.12 中提供的ECMAScript 6功能

"use strict";
function* simpleGenerator(){
  yield "first";
  yield "second";
  yield "third";
  for (var i = 0; i < 3; i++)
    yield i;
}