【发布时间】:2015-05-26 07:44:57
【问题描述】:
我有一个带有 Canvas 的指令,它与 webWorker 进行通信。在 Firefox 和 Chrome = 43.0.2357.65(64 位)上,该指令未接收来自 Worker 的消息。
restrict: 'E'
replace: true
templateUrl: 'some.html'
link: ($scope, element, attrs) ->
...
worker = new Worker('js/myworker.js')
...
#
# Initialize Worker with the canvas image
#
initializeWorker = (imgData, imgWidth, imgHeight, length) ->
worker.postMessage(
type: 'init'
imgData: imgData
width: imgWidth
height: imgHeight
length: length
calculateBoundingBox: true
)
...
...
initializeWorker(...)
worker.onmessage = (event) ->
console.log('Worker message', event)
worker.onerror = ->
console.log('error on the web worker')
即使是这样的假工人:
var onmessage;
onmessage = function(event) {
return postMessage('message');
};
我尝试使用 Blob 而不是加载 `js´ Worker 文件,但问题仍然存在。
在 Firefox 和 Chrome
Worker message message { target: Worker, isTrusted: true, data: "message", origin: "", lastEventId: "", currentTarget: Worker, eventPhase: 2, bubbles: false, cancelable: true, defaultPrevented: false, timeStamp: 1432625927407334 }
但不是在 Chrome >= 43.0.2357.65(64 位)上。
【问题讨论】:
标签: javascript angularjs google-chrome firefox web-worker