相关疑难解决方法(0)

如何通过Web-Workers传递自定义类实例?

由于Web-Worker JSON在线程之间序列化数据,所以这样的东西不起作用:

worker.js

function Animal() {}
Animal.prototype.foobar = function() {}

self.onmessage = function(e) {
  self.postMessage({animal: new Animal()})  
}
Run Code Online (Sandbox Code Playgroud)

main.js

let worker = new Worker('worker.js')

worker.onmessage = function(e) {
    console.log(e.data)
}

worker.postMessage('go!')
Run Code Online (Sandbox Code Playgroud)

结果将是foobar原型方法丢失的简单对象.

是否可以将自定义对象传回主线程而不会丢失其原型方法?就像,这可能ArrayBuffer吗?我不熟悉那些东西,所以我有点迷茫.

javascript buffer data-transfer web-worker arraybuffer

6
推荐指数
1
解决办法
1755
查看次数