我收到以下错误
未捕获的TypeError:无法执行'postMessage' 'DedicatedWorkerGlobalScope':提供的值无法转换 一个序列。
在网络工作者的这一行:
postMessage("hi", "http://localhost:8000");
(事实上,这就是整个网络工作者)。
基本文件包含:
var myWorker = new Worker("test.js");
myWorker.onmessage = function (e) {
console.log('Message received from worker');
};
我不确定它抱怨哪个值,我不确定将它转换为“序列”意味着什么。
答案 0 :(得分:3)
发布消息的目标是隐式的(调用函数的工作对象,或者从工作者调用时创建工作者的脚本。所以你应该使用:
postMessage("hi");
如果对于像我这样因其他无关原因而遇到此问题的人有用,我就是这样做的:
postMessage("type", value)
当我打算做的时候:
postMessage(["type", value])
答案 1 :(得分:0)
当我尝试在<a href="http://example.com">example.com</a>
中传递多个参数时,显示了相同的错误消息。
一种解决方案是使用JSON对象传递它。
例如:postMessage
然后,当您要访问它时,可以执行以下操作:
postMessage({'key1': 'value1','key2': 'value2'});