如何使用角度在web worker中使用范围

时间:2015-05-08 08:46:40

标签: angularjs

这是我的代码。但是我收到了错误。请帮我解决这个问题。

在控制器中

if(typeof(Worker) !== "undefined") {
    if(typeof(worker) == "undefined") {
        var worker = new Worker("assets/scripts/directives/custommultifilter.js");
        worker.postMessage({ "getobject":scope.payloadRowCollection}); 
         worker.onmessage = function(event) {
                 console.log(event);                                         
         }
    }
 }

在web worker(custommultifilter.js)

self.addEventListener("message", function(e) {
  $scope.arr = [1,2,3];
     postMessage($scope.arr);
}, false);

1 个答案:

答案 0 :(得分:0)

无法在网络工作者和" main"之间共享变量。脚本。如果是,你会遇到并发问题。

但您可以通过活动进行交流:

// in the worker
self.postMessage('someData);

// in angular
worker.addEventListener('message', function(e) {
    console.log('Worker said: ', e.data);
}, false);

这是一个关于网络工作者的好教程。 http://www.html5rocks.com/en/tutorials/workers/basics/