Phantom js 不支持箭头函数 ( => )



我正在使用Jasmine对Angular应用程序进行单元测试。在Chrome上一切正常,直到我开始使用PhantomJs进行控制台上的无头浏览器测试或测试输出。

2 天后,我发现 PhantomJs 不支持 lambda 表达式。单元测试没有任何问题,但它是lambda表达式和PhantomJs。

我正在使用 -

  1. 角度Js - 1.6.6

  2. 茉莉花 - 2.9.1

  3. 幻影 - 2.1.1

谁能帮我解决这个问题?

提前谢谢你。

PhantomJs 尚不支持箭头函数。事实上,它对ES2015的支持很少。请参阅pixiuPL(维护者(在其存储库中此问题的评论:

引入 ECMA 将需要几乎完全重写,并且 - 保持 m8ind 我现在似乎是 PJS 的唯一活跃开发人员 - 需要等到其他 - 更紧急 - 的问题得到解决。

与此同时,如果你觉得足够熟练 - 随意开始工作,但在单独的分支上。

改用函数表达式。如果要捕获this值,请添加bind

例如

改变:

(foo, bar) => this.example(bar, foo);

(function (foo, bar) { return this.example(bar, foo); }).bind(this)

你可以使用 Babel 来转换箭头函数:

babel.config.json

{ "plugins": [
    "@babel/plugin-transform-arrow-functions"
  ]
}

从命令行:

babel infile.js --out-dir out --config-file babel.config.json

最新更新