Parallel.js / WebWorker和优化代码的问题

时间:2014-05-27 10:21:11

标签: javascript requirejs rjs optimization

我通过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;。对不起,只是无法让这个工作......

1 个答案:

答案 0 :(得分:0)

嗯,也许我应该考虑另一种(更好的)导入我的辅助函数的方法......

我想以这种方式导入,因为传统的浏览器支持,所以如果没有webworker支持(例如IE9),我可以调用应该正常传递给worker的函数,然后使用helper().someFn()那里......