reactjs - 为什么 web Worker 的 import axios 不起作用?
问题描述
我正在尝试使用 axios 创建与 web 工作者的 API 请求,这是我的 worker.js
import axios from 'axios'
export default () => {
self.addEventListener('message', e => {
if (!e) return;
let config = e.data;
let url = config.url;
let params = config.params;
setInterval(()=>{
axios.get(url,{params}).then(res=>{
postMessage(res);
})
},5000);
});
}
唯一奇怪的是 axios 没有定义,我做错了什么?
这是我的网络工作者代码片段
export default class MonitoringWorker {
constructor(worker) {
const code = worker.toString();
const blob = new Blob(['(' + code + ')()']);
return new Worker(URL.createObjectURL(blob));
}
}
import worker from './worker/worker'
import MonitoringWorker from './worker/MonitoringWorker'
export default class TransactionMonitoring extends Component{
componentDidMount(){
console.log({worker})
this.worker = new MonitoringWorker(worker);
this.worker.addEventListener('message', e => {
console.log("RECEIVED DATA",e.data);
});
this.worker.postMessage({ url:'xxxx'})
}
//restOfcode
}
解决方案
您可以使用importScripts
importScripts("https://unpkg.com/axios/dist/axios.min.js");
在您的工作人员文件的顶部。
推荐阅读
- mysql - 如何使用占位符更新 1 行中的 1 列
- javascript - 在迭代时更改我的数组(Javascript)
- java - Flink:左加入带有静态列表的流
- php - 对 phpmail 例程的 Ajax 调用在 ASYNC:FALSE 中有明显的延迟,并且在涉及到新页面的标头时在 ASYNC:TUE 中失败
- javascript - DynamoDB API 时间点备份启用
- javascript - 如果我们在新页面上加载 React 应用程序,如何停止历史记录?
- python - Python 2.7 已弃用,我应该删除它吗?
- pine-script - 最大策略利润的变量值迭代 - Pine 脚本
- reactjs - React reload call api函数不起作用
- mysql - MySQL连接客户端和服务器无法通信,因为它们没有共同的算法