मैं का उपयोग कर रहा हूं और मैं एक वेब वर्कर का कार्य कार्यान्वयन देखना चाहता हूं।AngularJS में वेब वर्कर का उपयोग कैसे करें?
मैं इसे समझने के लिए एक सरल वेब वर्कर काम करना चाहता हूं, लेकिन मैं कार्यक्षमता के साथ किसी समस्या में भाग रहा हूं।
मैं 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);
मेरा नियंत्रक.जेएस फ़ाइल खाली है और ऐसा लगता है:
'use strict';
/* Controllers */
var app = angular.module("myApp.controllers",[]);
app.controller('MyCtrl1', [ '$scope', function($scope) {
}]).controller('MyCtrl2', [ '$scope', function($scope) {
}]);
मैं जो चाहता हूं वह वेब वर्कर के आउटपुट को देखना है।
त्रुटि मैं इस सेटअप के साथ मिलता है:
Uncaught TypeError: विधि कॉल नहीं कर सकता अपरिभाषित
मैं, कि त्रुटि ठीक धन्यवाद! अब कोई त्रुटि नहीं है, लेकिन मुझे अभी भी मेरे वेब वर्कर से संदेश नहीं दिखाई देता है। कंसोल में कुछ भी पॉप अप नहीं करता है जो सत्यापित करेगा कि वेब वर्कर ने कुछ किया है। – acudars
क्या आपने कार्यकर्ता को कुछ भी करने के लिए कहा है? यह बस बैठे और आपके लिए इंतजार कर रहा है। आपको अपने $ HelloWorldService को नियंत्रक में इंजेक्ट करने की आवश्यकता है और $ HelloWorldService.doWork ("कुछ") पर कॉल करें। 'app.controller ('MyCtrl1', [ '$ गुंजाइश', '$ HelloWorldService', समारोह ($ गुंजाइश, $ HelloWorldService) { $ HelloWorldService.doWork (" कुछ "); }])। नियंत्रक ('MyCtrl2', ['$ स्कोप', फ़ंक्शन ($ स्कोप) { }]; '' – coreyb