前端请求后端接口时,某些场景失败了需要重新发起请求(里面可以加入自己的业务逻辑)
/**
url 请求接口路径
params 请求参数
maxRetry 最大重试次数
requestHttp 为请求后端接口的方法
*/
const requestRetry = (url, params, maxRetry) => {
return new Promise((resolve, reject) => {
const doRequest = async (count) => {
try {
const res = await requestHttp(url, params)
if (res.code === 200) {
resolve(res)
} else {
throw new Error('请求失败')
}
} catch (error) {
if (count < maxRetry) {
doRequest(count + 1)
} else {
reject(new Error('已超过最大请求次数'))
}
}
}
doRequest(0)
})
}