axios取消重复的旧请求
时间: 2023-07-26 07:06:43 浏览: 97
在使用axios发送请求时,可以使用axios的cancelToken来取消旧请求。当发起新请求时,先取消旧请求,然后再发送新请求。
具体实现可以参考以下步骤:
1. 创建一个axios的cancelToken对象:
```js
const cancelToken = axios.CancelToken;
const source = cancelToken.source();
```
2. 在发送请求前,先取消旧请求:
```js
if (this.lastRequest) {
this.lastRequest.cancel(); // 取消旧请求
}
this.lastRequest = source; // 保存新请求
axios.get(url, {
cancelToken: source.token
}).then(response => {
console.log(response.data);
}).catch(error => {
if (axios.isCancel(error)) {
console.log('Request canceled', error.message);
} else {
console.log(error);
}
});
```
在取消请求时,需要判断当前请求是否已经被取消,如果已经被取消,就不再处理。
3. 在组件销毁时,取消最后一次请求:
```js
beforeDestroy() {
if (this.lastRequest) {
this.lastRequest.cancel(); // 取消最后一次请求
}
}
```
这样就可以实现取消重复的旧请求了。
阅读全文