文档

使用方法

取消请求

const CancelToken = axios.CancelToken;
const source = CancelToken.source();
 
axios.get('/user/12345', {
  cancelToken: source.token
}).catch(function (thrown) {
  if (axios.isCancel(thrown)) {
    console.log('Request canceled', thrown.message);
  } else {
    // 处理错误
  }
});
 
axios.post('/user/12345', {
  name: 'new name'
}, {
  cancelToken: source.token
})
 
// 取消请求(message 参数是可选的)
source.cancel('Operation canceled by the user.');

网络超时处理

service.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
}, function (error) {
  if(err.code === 'ECONNABORTED' || err.message === 'Network Error' || err.message.includes('timeout')) {
    app.$message.warning('网络异常,请稍后重试!')
    return Promise.reject(err)
  }
  return Promise.reject(error);
});

自定义 adapter

import Axios from 'axios';
import jsonpAdapter from './jsonpAdater';
 
const request = Axios.create({
    adapter: (config) => {
        if (config?.params?.format === 'jsonp') {
            return jsonpAdapter(config);
        }
 
        // 这里需要将config.adapter设置为空
        // 否则会造成无限循环
        return defaultAxios({ ...config, ...{ adapter: undefined } });
    },
});

阅读更多内容可以查看:

TypeScript

扩展阅读