从Web worker运行函数

时间:2013-12-09 21:19:05

标签: javascript web-worker

我有一个JS对象,它有一个带另一个对象的函数和一个int:

this.foo.func(bar, int);

有没有办法将此函数(和/或对象)传递给worker,以便它可以执行它?或者以某种方式与工人分享范围?

我不确定,但我认为Transferable Objects不会帮助我,因为没有任何对象可以转换为JSON?

2 个答案:

答案 0 :(得分:1)

worker无法运行影响DOM的函数。

您只能(现在)将字符串传递给网络工作者。


您可以做的就是尽可能多地传递网络工作者可以使用的信息,然后将您所做的工作返回到主窗口。

答案 1 :(得分:0)

您可以使用 vkThread 插件执行此操作。

看起来像这样:

function foo(n, m) {
    return n+m;
}

vkthread.exec(foo,     // function to execute in a web worker
              [1, 2],  // arguments for the function
              function(data){ // callback
                             console.log(data); // 3
                           }
);

详见:http://www.eslinstructor.net/vkthread/