javascript
const attemptWithRetries = async(attempts:number, maxRetries: number, count:number) => {
if(attempts < maxRetries)
{
try {
const param = {
userid: userid,
};
await testApi.getTestList(param).then((res:any) => {
if(res.length > 0){
// 处理成功操作
}
});
if(attempts < maxRetries)
{
// 未到请求次数,抛出异常,接收异常位置再次发起请求
throw new Error('Request failed');
}
} catch (error) {
setTimeout(() => {
attempts++
attemptWithRetries(attempts,maxRetries,count); // 递归调用
}, 1000); // 等待 1 秒后重试
}
}
}
// 调用
let attempts = 0;
let maxRetries = 5;
attemptWithRetries(attempts,maxRetries,count);
上方代码是尝试五次请求ajax的代码。
注意:ajax请求,要使用async和await,保证一个ajax请求完成后再发起新的尝试,不然会一次性请求五次ajax,不友好