axios 利用CancelToken中断请求
1.发送请求处
一般我们将axios请求封装为request.js文件并暴露出接口以便外部使用。在外部调用的过程中,如遇到不符合要求或需要新增的config参数是允许覆盖和新增的,编写如下:
import axios from 'axios';
import request from '@/utils/request';
//这里采用传递executor函数到CancelToken的构造函数来创建cancel token
const CancelToken = axios.CancelToken;
// 外部调用的请求方法
export const dataBaseTest = (data, _this) =>
request({
url: '/moye/data-storage/database/test',
method: 'post',
data,
cancelToken: new CancelToken(function executor(c) {
_this.cancelAjax = c;
}),
});
2.调用处
cancelAjax = null;
const { data } = await dataBaseTest(this.dataBase, this); // 调用函数,发送请求
// 在需要终止请求的地方写入
if (typeof this.cancelAjax === 'function') {
this.cancelAjax('请求中断');
}