我目前有此代码来创建 Web Worker:
w = new Worker("webwork.js");
w.onmessage = function(event) { alert(event.data); }
然后是 Web Worker 的 webwork.js
代码:
self.onmessage = function(event) {
//var ss=r; //Causes error because of undefined
var ss="";
for(var currProp in event) {
ss+=("event."+currProp+"="+event[currProp]+"\n");
}
postMessage(ss);
}
现在我想使用以下代码传输一个 128 兆字节 ArrayBuffer
:
var r = new ArrayBuffer(1048576*128);
w.postMessage(0, [r]);
现在我应该已经转移了变量 r
,我如何从 Web Worker 本身访问它。 I have tried event.r
, just r
, self.r
and other things like trying to add a second function argument for the array of ArrayBuffers
,但没有任何效果。
如何从 Web Worker 访问传输的变量?
原文由 alt.126 发布,翻译遵循 CC BY-SA 4.0 许可协议
在
transferList
中,您必须指定aMessage
中包含的可转移对象:在工人中:
或者使用 对象解构:
可转让对象 清单。