【axios】取消在pending的请求
1. 背景
短时间内多次发送异步请求,结果返回的快慢不一导致数据显示有误,希望获得并展示最新请求结果。可以通过取消前面在pending的请求实现以上需求。
2.取消pending请求的实现代码片段
if(this.state.source){
this.state.source.cancel('The request is canceled!'); // 在需要的时候执行cancel方法可以取消多个在pending的请求。
}
const source = axios.CancelToken.source();
this.setState({ source: source });
axios.post(url, data, { cancelToken: source.token}).then(res=>{}).catch(err=>{})
注意get的cancelToken放置在第二个参数的对象里面,post的cancelToken放置在第三个参数对象里面。
参考文档:https://blog.csdn.net/RkHker/article/details/109024561