如果需要同时取消多个请求,可以使用 axios.CancelToken.source() 生成一个 cancel token,并将其注入到每个请求中。然后可以将多个 cancel token 作为参数传递给 axios.all 方法,以一次性取消所有请求。
示例代码如下所示:
import axios from 'axios';
const source = axios.CancelToken.source();
const request1 = axios.get('/api/endpoint1', {
cancelToken: source.token
});
const request2 = axios.get('/api/endpoint2', {
cancelToken: source.token
});
axios.all([request1, request2])
.then(results => {
console.log('All requests complete', results);
})
.catch(error => {
if (axios.isCancel(error)) {
console.log('Request cancelled', error.message);
} else {
console.error('Request error', error);
}
});
// To cancel both requests:
source.cancel('Cancelled by user');