可以使用 CancelToken.source 工厂方法创建 cancel token,像这样
// 在页面中,或者在封装axios中,引入axios
import axios from "axios";
const CancelToken = axios.CancelToken;
this.source = CancelToken.source(); // 设置全局变量
// 模拟请求
axios.post('/api/fileUpload', {
file: formData
}, {
cancelToken: source.token
}).catch(function(thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message);
} else {
// 处理错误
}
});
// 取消请求(message 参数是可选的)
this.source.cancel('Operation canceled by the user.');
还可以通过传递一个 executor 函数到 CancelToken 的构造函数来创建 cancel token
// 在页面中,或者在封装axios中,引入axios
import axios from "axios";
this.cancel = null; // 设置全局变量
const CancelToken = axios.CancelToken;
// 模拟请求
axios.post('/api/fileUpload', {
file: formData
}, {
cancelToken: new CancelToken(c => {
this.cancel = c;
})
})
// 取消请求
this.cancel();
网友评论