Skip to content

错误重试

实现一个方法,对错误请求进行重试。

js
const queryTry = async (queryfn, arg, queryTime=1) => {
    const maxTryTime = 2 // 最多重试次数
    let error = null
    let res = null
    await queryfn(arg).then(e=> {
        res = e
    }).catch(e=> {
        error = e
    })
    console.log('res----->',res)
    if (!res && queryTime <= maxTryTime) {
        res = await queryTry(queryfn, arg, queryTime+1)
    }
    return res||error
}

const mockRequest = (arg) => {
    return new Promise((res, rej) => {
        setTimeout(() => {
            rej({code: -1, msg: '请求超时'})
        }, 3000)
    })
}

async function testFn() {
    let res = await queryTry(mockRequest, {},1)
    console.log('请求结果', res)
}
testFn()