Vue 多次尝试请求ajax

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,不友好

相关推荐
co松柏12 小时前
AI+Excalidraw,用自然语言画手绘风格技术图
前端·人工智能·后端
用户812748281512012 小时前
安卓Settings值原理源码剖析存储最大的字符数量是多少?
前端
用户812748281512012 小时前
安卓14剖析SystemUI的ShadeLogger/LogBuffer日志动态控制输出dumpsy机制
前端
Ankkaya12 小时前
cloudflare + github 实现留言板
前端·github
是你的小橘呀12 小时前
单页应用路由怎么搞?React Router 从原理到实战全解析!
前端·javascript
xuedaobian12 小时前
2025年我是怎么用AI写代码的
前端·程序员·ai编程
风止何安啊12 小时前
Set/Map+Weak三剑客的骚操作:JS 界的 “去重王者” ,“万能钥匙”和“隐形清洁工”
前端·javascript·面试
saberxyL12 小时前
前端登录加密与Token管理实践
前端
3秒一个大12 小时前
React 中 Context 的作用与用法:从主题切换案例说起
前端·react.js
2501_9444460012 小时前
Flutter&OpenHarmony文本输入组件开发
前端·javascript·flutter