首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Axios重试成功响应拦截器

Axios重试成功响应拦截器
EN

Stack Overflow用户
提问于 2020-08-01 00:14:57
回答 2查看 420关注 0票数 0

如果API响应的状态码在指定时间之后是202,我会遇到这样的情况:我想重试请求。

在axios成功拦截器中,我这样做:

代码语言:javascript
运行
复制
    function axiosRetrySuccessInterceptor(response) {
         const { status, config } = response;
         // Retry the request on http status code 202
         if (status === 202 ) {

            return new Promise(() => {

               setTimeout(() => {

                  axios.request(config)

                }, 2000);
            });

         } else {

            // No need to do anything, take rest
            return Promise.resolve(response);
         }
    }

     
    // calling function
    axios.interceptors.response.use(axiosRetrySuccessInterceptor,axiosRetryInterceptor);

如果有任何其他非202 API调用,我想清除之前的重试请求。

我也添加了clearTimeout,但没有成功。

当我返回上一个屏幕时,新的API被调用,但之前的重试API仍然被调用。它不会停止。我尝试了下面的方法,也使用了clearTimeout,但没有成功,而是停止了重试

代码语言:javascript
运行
复制
     var retry = setTimeout(() => {

        axios.request(config)

        clearTimeout(retry)
     })
EN

Stack Overflow用户

发布于 2020-08-01 00:40:14

代码语言:javascript
运行
复制
return new Promise(resolve => {
                const abc = setTimeout(() => {
                    axios.request(config).then(resolve);
                    clearTimeout(abc);
                }, data.retryAfter);
            });

@TKol已经尝试过了,但不起作用

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63195488

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档