取消请求API
AbortController
axios版本 v0.22.0 开始,Axios支持以 fetch API 方式,取消请求 AbortController
const controller = new AbortController();
axios.get('/foo/bar', {
signal: controller.signal
}).then(function(response) {
//...
});
// 取消请求
controller.abort()
CancelToken
由于项目中使用的axios版本在 v0.22.0 以下,故采取canceltoken的方式进行请求的撤销,这个API已经过时,所以也可以通过升级axios,使用上面的方式
项目采用umi+dva构建方式,在组件中引入取消的逻辑
react组件中使用
const getDetail = useCallback(() => {
const {
environment, project} = queryParams;
if(!environment || !project || !selectedTable) return;
if(cancelQuery) {
cancelQuery('请求被取消了');
}
setLoading(true);
dispatch({
type: 'warehouse/getDataViewDetail',
payload: {
environment: environment,
project: project,
name: selectedTable
},
cancelToken: new