美文网首页
js利用递归和promis实现数据重试

js利用递归和promis实现数据重试

作者: 2017会飞的鱼 | 来源:发表于2022-08-30 12:00 被阅读0次

    下例实现重试10次请求:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Promis example</title>
        <script>
            function startapi(reqId, resolve, reject){
                let timers=0;
                return function apirequest(){
                    let arg = arguments[0];
                    let a = new Promise((res,rej)=>{
                        setTimeout(()=>{
                            res('成功返回数据')
                        }, 100)
                    });
                    a.then(()=>{
                        timers++;
                        if(timers>10){
                            return resolve('over');
                        }
                        console.log('timers:',timers, ' id:', reqId);
    //                    if(timers==3){
    //                        return reject('第三个失败')
    //                    }
                        apirequest(timers)
                    }).catch(err=>{
                        apirequest(timers)
                        console.log(err)
                    })
                }
            }
            function handle(){
                return new Promise((res,rej)=>{
                    let newreq = startapi('1122', res, rej);
                    newreq(0);
                })
            }
            
            handle().then(res=>{
                console.log('handle:', res);
            }).catch(err=>{
                console.log('handle err:', err);
            });
            
        </script>
    </head>
    <body>
        
    </body>
    </html>
    

    相关文章

      网友评论

          本文标题:js利用递归和promis实现数据重试

          本文链接:https://www.haomeiwen.com/subject/okjlnrtx.html