背景

    前端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;

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐