错误重试
实现一个方法,对错误请求进行重试。
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()