Я использую 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);
Мой файл controllers.js пуст и выглядит так:
'use strict';
/* Controllers */
var app = angular.module("myApp.controllers",[]);
app.controller('MyCtrl1', [ '$scope', function($scope) {
}]).controller('MyCtrl2', [ '$scope', function($scope) {
}]);
Что я хочу, так это увидеть вывод Web Worker.
Ошибка, которую я получаю с этой настройкой:
Uncaught TypeError: невозможно вызвать метод factory из неопределенного