当前位置: 首页 > news >正文

轮询那些事儿

💡 一、什么时候需要用到“轮询”?

轮询适合用于:

后端处理时间不确定,前端需要持续等待结果的场景。
🔹 常见业务场景:
场景 说明
✅ 文件上传后等待处理结果 后端要转码、分析、生成报告等
✅ 任务提交后等待完成 比如导出Excel、生成PDF、生成报表
✅ 审批/支付系统 比如轮询支付结果、风控校验结果
✅ 异步交易(你系统中的“债券下达指令”) 提交指令 → 后台风控处理 → 轮询查结果
✅ 消息通知 / 状态更新 实时性不高,又不能用WebSocket时

1️⃣ 提交任务(调用接口A)
2️⃣ 拿到任务ID(taskId)
3️⃣ 每隔几秒查询一次任务状态(接口B)
4️⃣ 如果状态为“成功/失败” → 停止轮询
5️⃣ 如果超过最大次数还没结果 → 提示超时

export default {data() {return {timer: null,timerCount: 0,};},methods: {async startPolling(taskId) {this.loading = true;this.timerCount = 0;this.timer = setInterval(async () => {this.timerCount++;const res = await this.$http.get(`/api/taskStatus/${taskId}`);if (res.data.status === 'SUCCESS' || this.timerCount > 10) {clearInterval(this.timer);this.loading = false;if (res.data.status === 'SUCCESS') {this.$message.success('任务完成 ✅');} else {this.$message.warning('任务超时,请稍后重试 ⚠️');}}}, 3000);},beforeDestroy() {clearInterval(this.timer);},},
};

setInterval 3秒种发一次轮循
timerCount是计数器
轮循调用的API接口: const res = await this.http.get(‘/api/taskStatus/http.get(`/api/taskStatus/http.get(‘/api/taskStatus/{taskId}`);
clearInterval(this.timer); 清除计数器

http://www.dtcms.com/a/507426.html

相关文章:

  • GitLab安装
  • Redis八股
  • 网站gif素材dw做网站背景音乐
  • 做网站编程有钱途么做玩具订制网站好处
  • CI/CD:现代软件开发的持续交付之道
  • 【理论知识】Q/K/V权重矩阵学习笔记
  • 【小增长电商软件分享】微信私域淘宝电商补单/做基础销量:如何有效控制粉丝错货、复购、订单插旗及客服转账返款等常见痛点|粉丝订单管理|电商鱼塘运营方案
  • Tomcat安装与HTML响应实战
  • 第三章深度学习---核心库TensorFlow 和 PyTorch 实操指南(四)
  • YOLO v4模型
  • uni-app 小程序开发避坑:诡异的 `module ‘...‘ is not defined` 错误与我的解决方案
  • 中国最大的中文网站安庆微信网站开发
  • 广州市南沙区建设局网站网站建设与规划总结
  • 百度 PaddleOCR 3.0 深度测评:与 MinerU 的复杂表格识别对决
  • 选cpp /c++方向工作职业发展的优缺点
  • 香港硬防服务器防御DDOS攻击的优点
  • 如何利用扣子生成小程序并进行发布指南
  • Rust 与 Go – 比较以及每个如何满足您的需求
  • HTTP 核心知识点速查表
  • YOLOv4 :兼顾速度与精度!
  • 甘南网站建设asp网站仿制
  • 【AI4S】Generative AI 为药物设计带来新思路:寻找“美丽分子”
  • 第19节-非规范化数据类型-Enum
  • 曼彻斯特编码与差分曼彻斯编码的区别
  • 网站内链检测百度关键词优化工具是什么
  • Node.js+Koa2+MySQL 打造前后端分离项目(视频教程)
  • 企业网站怎么管理系统用idea做html网站
  • 高端建网站西部域名网
  • unbuntu重置netplan
  • Transformer架构:深度学习序列建模的革命性突破