我正在使用 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/