Я создал веб-работника с помощью, но не смог найти способ получить экземпляр Worker из функции Worker.
Изнутри функции, если я использую «this» или «self».'тогда я могу получить только объект' DedicatedWorkerGlobalScope '.
Пожалуйста, посмотрите фрагмент кода ниже, чтобы понять проблему:
/******** below is main.html file *********/
var mywebworker1 = new Worker('mywebworker1.js');
// register event listener to receive data from worker
mywebworker1.addEventListener('message', function(e) {
// at this point, 'this' == 'Worker' instance
// ... other code
});
/******** below is inside mywebworker1.js file *********/
self.addEventListener('message', function(e) {
// at this point, 'this' == 'DedicatedWorkerGlobalScope' object
// PROBLEM: How to get 'Worker' instance in here ??
// .. other code
}, false);
Я пытался передать экземпляр Worker в postMessage, например:
// send command to start counting
mywebworker1.postMessage({"action": "count", "from" : 7, "to": 22, "instance": mywebworker1});
// GOT ERROR message = Uncaught DOMException: Failed to execute 'postMessage' on 'Worker': Worker object could not be cloned.
Заранее спасибо за помощь ~