fe-interview icon indicating copy to clipboard operation
fe-interview copied to clipboard

[vue] axios同时请求多个接口,如果当token过期时,怎么取消后面的请求?

Open haizhilin2013 opened this issue 6 years ago • 3 comments

axios同时请求多个接口,如果当token过期时,怎么取消后面的请求?

我也要出题

haizhilin2013 avatar Dec 05 '19 21:12 haizhilin2013

axios的话可以使用cancelToken来实现。如果是原生的XMLhttprequest的话,需要使用abort()方法实现。

https://juejin.im/post/5d664634f265da03d42fb6dc

Cyrusky avatar Dec 06 '19 00:12 Cyrusky

官网上标准答案: 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.');

wzp20180518 avatar Aug 27 '20 12:08 wzp20180518

0.22.0 版本后已经废弃 CancelToken Api 改为 AbortController

Amazingman1 avatar Sep 26 '24 16:09 Amazingman1