解决react中axios请求超级慢,页面卡死不动
·
背景
前端react用axios访问java后端的api, 请求多的情况下,画面会卡死不动了
解决
添加一个request.js文件.完美解决。
import axios from 'axios'
axios.defaults.timeout = 10000;
axios.defaults.retry = 5;//第一次请求失败后重试请求的次数
axios.defaults.retryDelay = 1000;//在失败请求之间等待的
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
return config
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error);
});
//添加重新请求的全局功能
function fun(err){
var config = err.config;
if (!config || !config.retry) {
return Promise.reject(err)
}
config.__retryCount = config.__retryCount || 0;
if (config.__retryCount >= config.retry) {
return Promise.reject(err);
}
config.__retryCount += 1;
var backoff = new Promise(function (resolve) {
setTimeout(function () {
resolve();
}, config.retryDelay || 1);
});
return backoff.then(function () {
return axios(config);
});
}
axios.interceptors.response.use((response)=>{
// 对响应数据做点什么
return response;
}, (err)=> {
fun(err)
});
export default axios;
更多推荐
所有评论(0)