【发布时间】:2022-10-17 05:33:51
【问题描述】:
我一直在尝试在 Vue 应用程序中使用 SharedWorker,但遇到了错误“获取工作脚本失败”。
我想使用 SharedWorker 来获取消息并将其发布到 WebSocket。
socketworker.js
const API_KEY =
"<my api key>";
const socket = new WebSocket(
`wss://streamer.cryptocompare.com/v2?api_key=${API_KEY}`
);
self.onconnect = e => {
const port = e.ports[0];
socket.addEventListener("message", evt => {
if (evt.data) {
port.postMessage(evt.data);
return;
}
});
};
self.onmessage = e => {
message = e.data;
socket.send(message);
};
api.js
const socketWorker = new SharedWorker("./workers/socketworker.js", {
type: "module",
name: "socketWorker"
});
socketWorker.port.onmessage = e => {
...
}
【问题讨论】:
-
你在用Vite吗?完整的错误信息是什么?是404吗?如果是这样,则该文件可能在
api.js的路径中不存在(即 URL 可能错误)。 -
不,我不使用 Vite。控制台中的完整错误消息是“无法获取工作脚本”。就这样。在网络选项卡中,工作文件的状态为挂起。
标签: javascript vue.js shared-worker