【发布时间】:2020-07-05 06:20:53
【问题描述】:
我试图从网络工作者内部的服务器获取数据。但是每次我在开发工具中遇到同样的错误。
Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'WorkerGlobalScope': Failed to parse URL from /api/books
我看到了this 关于服务人员的回答,但它对我不起作用。
WebWorker 文件代码!
// data-handling.web-worker.js
const workercode = () => {
onmessage = async e => {
const res = await fetch('/api/books');
postMessage(res);
}
};
let code = workercode.toString();
code = code.substring(code.indexOf('{')+1, code.lastIndexOf('}'));
const blob = new Blob([code], {type: 'application/javascript'});
const worker_script = URL.createObjectURL(blob);
export default worker_script;
在 React 组件中导入。
import data_handling_worker from "./data-handling.web-worker";
const dataHandlingWorker = new Worker(data_handling_worker);
在钩子中运行和发布消息!
const [searchQuery, setSearchQuery] = useState('');
const [booksList, setBooksList] = useState([]);
useEffect(() => {
dataHandlingWorker.postMessage(searchQuery);
}, [searchQuery]);
useEffect(() => {
dataHandlingWorker.onmessage = (m) => {
setBooksList(m.data);
};
}, []);
【问题讨论】:
-
你的代码在哪里?
-
您链接的问题似乎与您的“Failed to parse URL”错误无关?
-
尝试使用绝对网址
标签: javascript web-worker