Axios:暂停请求

时间:2019-03-17 11:48:11

标签: ajax axios interceptor

我有以下axios拦截器。

它检查所存储令牌的有效性。如果无效,则会触发请求以检索和存储刷新的令牌。

axios.interceptors.request.use(async config =>

    if(checkValidity(localStorage.getItem('token')) === false) {
        const response = await axios.get('http://foobar.com/auth/refresh');
        localStorage.setItem('token', response.headers['token']);
        config = getConfigFromResponse(response);
    }

    return config;
}); 

效果很好。问题是,如果我有很多带有无效令牌的请求,那么将完成对http://foobar.com/auth/refresh的许多请求以刷新它。

是否可以将所有请求放入一个数组中,并在刷新完成后将其激发?

这个想法是为了避免捕获401错误并重播请求:这就是为什么我要在检索令牌时“保存”请求,然后在令牌准备就绪时将其触发。

0 个答案:

没有答案