angularjs - 如何在 AngularJS 中使用 Web Worker?

标签 angularjs factory web-worker worker angular-services

我正在使用 AngularJS Seed我想看到一个 Web Worker 的工作实现。

我想让一个简单的 Web Worker 工作以便理解它,但我遇到了功能问题。

我在 中有 Web Worker 代码services.js 像这样:

'use strict';

/* Services */
var app = angular.module('myApp.services', []).

app.factory("HelloWorldService",['$q',function($q){

    var worker = new Worker('js/doWork.js');
    var defer;
    worker.addEventListener('message', function(e) {
      console.log('Worker said: ', e.data);
      defer.resolve(e.data);
    }, false);

    return {
        doWork : function(myData){
            defer = $q.defer();
            worker.postMessage(myData); // Send data to our worker. 
            return defer.promise;
        }
    };

}]);

js 文件夹我有一个文件 doWork.js 其内容是:
self.addEventListener('message', function(e) {
  self.postMessage(e.data);
}, false);

我的 Controller .js 文件是空的,它看起来像这样:
'use strict';

/* Controllers */
var app = angular.module("myApp.controllers",[]);

app.controller('MyCtrl1', [ '$scope', function($scope) {


}]).controller('MyCtrl2', [ '$scope', function($scope) {


}]);

我想要的是查看 Web Worker 的输出。

我在此设置中遇到的错误是:

未捕获的类型错误:无法调用未定义的方法“工厂”

最佳答案

你有语法错误?

改变

/* Services */
var app = angular.module('myApp.services', []).


/* Services */
var app = angular.module('myApp.services', []);

关于angularjs - 如何在 AngularJS 中使用 Web Worker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18131971/

相关文章:

javascript - 将大型数组传递给 webworker 时内存使用量不断增加

javascript - 停止后如何重新启动网络 worker

angularjs - 数据仍在加载中。数据绑定(bind)完成后,Grid 引发 'bindingcomplete' 事件

c++ - 我可以在 C++ 工厂中声明的同一行中使用变量吗?

javascript - Angularjs 自定义过滤器(过滤对象数组)

javascript - 防止第三方工厂干扰我的应用程序的同名工厂

java - java中使用泛型的工厂方法模式,如何?

javascript - 如何在 JS Web Worker 中循环查询 Worker 可用性而不阻塞

angularjs - Grunt Typescript 找不到 Angular 核心

javascript - AngularJS $在范围内应用