接口请求重试

269 阅读1分钟

HTTP接口请求重试

1、前言

请求重试是指在网络请求失败或者超时时,重新发送相同的请求以便获得正确的响应。通常,网络请求可能因为网络延迟、服务器故障、负载过大等原因而失败,此时可以通过多次重试来增加成功的概率。在实际开发中,可以通过设置重试次数、重试间隔时间等参数来控制重试的策略。同时,需要注意在重试过程中避免对服务器造成过大的负载。

一、循环重试

let retryTimes = 3;
for (let i = 0; i < retryTimes; i++) {
    try{
        // 请求接口的代码
        break;
    } catch (err){
        // 处理异常
        setTimeout(() => {
        }, 1000);//为了避免频繁请求,延迟1秒后重试
    }
}

二、使用递归结构

let retryTimes = 3;
function requestWithRetry(retryTimes) {
    if(retryTimes <= 0) {
            return;
    }
    try {
            //请求接口的代码
    } catch (error) {
        //处理异常
        setTimeout(() => {
            requestWithRetry(retryTimes - 1);
        }, 1000)//延迟1秒后重试
    }
}

三、公共方法


function request(url, msxCount = 5) {
    return fetch(url).catch(err=>maxCount <= 0?Promise.reject(err))
}

request("http/127.0.0.1:3000/index")
.then((resp) => {
    console.log(resp
})
.catch((err) => {
    console.log(err)
})

结语

通过以上方法,我们可以在前端项目中更加灵活地处理接口请求超时和实现重试机制,提高程序的稳定性和用户体验。