axios请求同一接口多次,取消上一次请求
为了取消上一次的请求,您可以在发送新请求之前调用已保存的 cancel token 的 cancel
方法。以下是使用 Axios 实现这一功能的示例代码:
const axios = require('axios');
let cancelTokenSource = null;
function sendRequest() {
// 取消上一次请求
if (cancelTokenSource) {
cancelTokenSource.cancel('Canceling previous request.');
}
// 创建新的 cancel token
cancelTokenSource = axios.CancelToken.source();
axios.get('your-api-endpoint', {
cancelToken: cancelTokenSource.token
})
.then(response => {
// 处理响应
console.log(response.data);
})
.catch(axios.isCancel(thrown) ?
console.log('Request canceled', thrown.message) :
console.error('Request failed', thrown));
}
// 模拟发送请求的函数
setInterval(sendRequest, 3000);
在这个例子中,sendRequest
函数会在每次被调用时取消上一次的请求,然后创建一个新的 cancel token 并发送新的请求。这样,如果在请求完成之前 sendRequest
被再次调用,上一次的请求会被取消。
评论已关闭