我正在尝试通过 postMessage 函数将对象传递给网络工作者。
这个对象是一个正方形,有几个功能可以在画布上和其他东西上绘制自己。 Web Worker 必须返回此对象的数组。
问题是,当我使用该对象调用 postMessage 函数时,出现以下错误:
Uncaught Error: DATA_CLONE_ERR: DOM Exception 25
我明白这既将对象发送给工作人员,也将对象发送给工作人员。
我认为错误是因为javascript必须序列化对象,但由于对象具有内置函数而无法做到这一点。
有人遇到过类似的问题吗?你知道这个问题的一些解决方法吗?
提前致谢。
有几个原因可能会引发您提到的错误,原因列于此处 https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm.
将对象发送到 Web Worker 时,对象会被序列化,如果该对象是可序列化对象,则稍后会在 Web Worker 中反序列化。
这意味着您发送给 Web Worker 的对象的方法无法传递给 Web Worker(导致您遇到的错误),并且您需要为对象提供必要的方法/函数在环境的 Web Worker 端,并确保它们不是传递给 Web Worker 的对象的一部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)