代码实现:使用Promise实现请求超时重试

本文详细讲解如何利用JavaScript的Promise来实现HTTP请求的超时处理及自动重试功能,通过设置超时时间和重试次数,确保在网络不稳定的情况下也能完成关键数据的获取。内容包括Promise的基本用法、超时逻辑的封装以及重试策略的实现。
摘要由CSDN通过智能技术生成
function retry(fn, delay){

    return new Promise((resolve, reject)=>{
        
        Promise.race([fn(), timeout(delay)].then(

            resolve(res);

        )).catch(err => {
            reject("race内部超时")
        })

    }).catch(err =>{

        console.log(err);
        return retry(fn, delay)
    })
}

//超时检测
const timeOut = (delay)=>{

    return new Promise((resolve, reject)=>{
        setTimeout(()=>{
            reject(false)
        }, delay);

    })
}

//模拟请求
const test = function(){

    const delay = Math.floor(Math.random*10000);
    console.log('本次请求花费:${delay}ms');
    return new Promise((resolve, reject)=>{

        setTimeout(()=>{
            resolve(1234)

        }, delay);
    })

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值