var url = 'http://172.25.20.65:7300/mock/63100fb92a08f300168e596f/test-axios-cancel/test';
// Axios v0.22.0 开始支持
const controller = new AbortController();
// console.log(controller)
// 请求拦截器
axios.interceptors.request.use(function (config) {
// 添加一个sigal标识
config.signal = controller.signal
return config;
}, function (error) {
return Promise.reject(error);
});
// 响应拦截器
axios.interceptors.response.use(function (response) {
return response;
}, function (error) {
if (error.__CANCEL__) {
console.log('取消成功');
}
return Promise.reject(error);
});
const controller2 = new AbortController();
// 发送一个延迟响应的请求
axios.get(url, {
// signal: controller2.signal
}).then(res => {
console.log(res.data)
}).catch(err => {
if (err.__CANCEL__) {
console.log('取消接口:' +url)
}
})
setTimeout(() => {
console.log('一秒后,发起取消请求....')
controller.abort()
}, 1000)
console