我通过grunt使用rjs优化器。我想使用webworker Parallel.js lib,但是我遇到了运行优化代码的语法错误。
优化和未优化代码的比较:
在github上看到这个要点: https://gist.github.com/mwager/4123a3fd5577b630582b
如你所见,我想使用像helper().importedHelperFunction1()
这样的smt
在工人里面。通过这种方式,可以轻松地将辅助函数导入到我的工作器代码中
(见http://adambom.github.io/parallel.js/#require)。
由于优化的变量,真正的问题是语法错误 - 和函数名称。 chrome dev工具中的语法错误是:
Uncaught SyntaxError: Unexpected token (
与要点第2行中的function () {
有问题。
在优化代码中,帮助程序的内容如下所示:
f=function(){return{importedHelperFunction1:function(a,b){return a+b}}}
但是Parallel.js需要将命名函数导入到worker中:
var webworkerHelpers = function helper() { // <-- named! but not after optimization )-:
return {
importedHelperFunction1: function(a, b) {
return a + b;
}
...
所以它将导入这样的函数:
function() { return { importedHelperFunction1: ...
导致语法错误...
我这样做了smt:
var theWorker = new Parallel(workerData);
theWorker.require(webworkerHelpers);
有没有人知道什么是处理这类问题的最佳方法?我应该退出使用Parallel js吗?或者优化器中是否有任何选项可以删除功能名称?&#34;。对不起,只是无法让这个工作......
答案 0 :(得分:0)
嗯,也许我应该考虑另一种(更好的)导入我的辅助函数的方法......
我想以这种方式导入,因为传统的浏览器支持,所以如果没有webworker支持(例如IE9),我可以调用应该正常传递给worker的函数,然后使用helper().someFn()
那里......