axios 超时重试,异常重试

安装 axios-retry

  • 网络异常请求重试处理
  • 断网 弱网
  • validateStatus 与 retryCondition 包含关系

安装 axios-retry

npm install axios-retry
复制代码

const whiteRetry = new Set(['ECONNABORTED', undefined]);

axiosRetry(instance, {
    retries: 2, // 重复请求次数
    shouldResetTimeout: true, //  重置超时时间
    retryDelay: (retryCount) => {
        return retryCount * 10000; // 重复请求延迟,每次请求之间间隔10s
    },
    retryCondition: (err) => {
        // true为打开自动发送请求,false为关闭自动发送请求
        const {code, message} = err;
        return whiteRetry.has(<string>code) || message.includes('timeout'); // code 200 -500  范围之外的才走重试流程
    },
});
复制代码

validateStatus 与 retryCondition 包含关系

❗❗❗ code 200 - 500 范围之外的才走重试流程

const instance = axios.create({
    baseURL,
    timeout: 5 * 1000,
    headers: {
        'Content-Type': 'application/json;charset=utf-8',
    },
    validateStatus(status) {
        return status >= 200 && status < 500;   // code 200 - 500  范围之外的才走重试流程
    },
});

猜你喜欢

转载自blog.csdn.net/sinat_17775997/article/details/124509292
今日推荐