Unit testing 意外标记'&燃气轮机';将Array.some()与Karma和PhantomJS一起使用

Unit testing 意外标记'&燃气轮机';将Array.some()与Karma和PhantomJS一起使用,unit-testing,phantomjs,karma-runner,Unit Testing,Phantomjs,Karma Runner,我得到以下错误: PhantomJS 2.1.1 (Windows 7 0.0.0) ERROR SyntaxError: Unexpected token '>' at myAngularControllerPath.js:9 导航到该文件时,我发现我正在使用Array.some()函数,如下所示: return list.some(x => isListItemGood(x)); 当我使用Karma.conf.js文件中指定的Chrome运行Karma时,我没有得

我得到以下错误:

PhantomJS 2.1.1 (Windows 7 0.0.0) ERROR
   SyntaxError: Unexpected token '>'
   at myAngularControllerPath.js:9
导航到该文件时,我发现我正在使用Array.some()函数,如下所示:

return list.some(x => isListItemGood(x));
当我使用Karma.conf.js文件中指定的Chrome运行Karma时,我没有得到这个错误

根据,PhantomJS支持ES5和array的所有10个新阵列特性。我使用“npm安装——保存开发karma PhantomJS launcher”安装了PhantomJS,它的依赖项中列出了2.1.7作为PhantomJS版本

谢谢你的帮助


PhantomJS只支持ES6的一小部分。

我认为问题在于lambda表达式。=>可能不受支持。嘿,Stefan,谢谢您的关注。在问题的底部,我提供了一些参考资料,说明我使用的所有版本都应该支持lambda。你认为那些参考资料不准确吗?也许吧。当我读到它在chrome中正常工作时,这是我的第一个猜测。你试过使用普通函数吗?那么它能工作吗?是的,因为这会移除它混淆的部分,所以自然不会被抓住。这个问题是专门针对为什么它抛出错误,而它不应该(根据引用)而不是解决问题。我在这个代码库中使用了相当多的ES5+,因此一个解决方案可以很快变成100个。嗨,Artjom,您链接到了一个ES6兼容性表,我提供了参考。ES5中引入了some()。只是想澄清一下,您是说ES6中引入了箭头函数(lambda)吗?我认为可能是这样的,因为我在这里看到它也在6中介绍:。这正是我要说的。问题根本不是关于
Array.prototype.some
,因为如果是的话,这将是一个类型错误,而不是语法错误。也许你可以通过使用箭头功能,通过使用js transpiler,比如感谢Stefan的提醒,来实现你想要的结果,我一直想研究一下,可以说这可能是让骆驼倒下的稻草。