幻影js不支持箭头功能(=>)

时间:2018-02-02 10:20:52

标签: javascript angularjs lambda jasmine phantomjs

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

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

我正在使用 -

  1. AngularJs - 1.6.6

  2. Jasmine - 2.9.1

  3. PhantomJs - 2.1.1

  4. 任何人都可以帮我吗?

    提前谢谢。

2 个答案:

答案 0 :(得分:3)

PhantomJs doesn't support arrow functions yet。事实上,它支持的ES2015很少。在他们的回购中从this issue看pixiuPL(维护者)的评论:

  

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

     

与此同时,如果你觉得足够熟练 - 可以随意开始工作,但是在另一个分支上。

答案 1 :(得分:3)

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

e.g。

变化:

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

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