Promise implements request retry

Use promise to implement request retry: if the request fails, the request will be resent after a delay of n seconds, with a maximum number of retries.

// getData 请求函数
// times 最大重试次数
// delay 重试延迟时间
function retry(getData, times, delay) {
    
    
    return new Promise((resolve, reject) => {
    
    
        function attempt() {
    
    
            getData.then(resolve).catch((err) => {
    
    
                console.log(`还有${
      
      times}次机会`)
                if(times == 0) {
    
    
                    reject(err)
                } else {
    
    
                    times--
                    setTimeout(attempt(), delay)
                }
            })
        }
        attempt()
    })
}

Guess you like

Origin blog.csdn.net/Dax1_/article/details/126917194