axios同时请求多个接口,如果当token过期时,怎么取消后面的请求?
-
axios的话可以使用cancelToken来实现。如果是原生的XMLhttprequest的话,需要使用abort()方法实现。
-
官网上标准答案:
const CancelToken = axios.CancelToken;
const source = CancelToken.source();
axios.get('/user/12345', {
cancelToken: source.token}).catch(
function(thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message);
} else {
// 处理错误
}});
axios.post('/user/12345', { name: 'new name'}, { cancelToken: source.token}) // 取消请求(message 参数是可选的)source.cancel('Operation canceled by the user.');