Vue Promise的使用,界面使用异步线程循环执行方法(模拟线程)

embedded/2024/11/28 6:06:26/

目录

1.定义开始和退出标识

2.定义开始方法--异步

3.定义循环方法,以及控制规则

4.定义业务方法


1.定义开始和退出标识

为的是能控制开始和结束,记得销毁时要结束循环,否则方法会一直被执行

javascript">data() {return {isrunning: false, // 轮询的标识}},

2.定义开始方法--异步

async 标识方法为异步,使用 store 异步调用一个方法,回调方法也标识为 async

然后再回调方法里边执行循环方法

javascript">      // 开始刷新async startRunning() {this.$store.dispatch('orderform/GetInExecutionOrder').then(async (res) => {this.runing()})},

3.定义循环方法,以及控制规则

先将标识isrunning 置为true

然后定义while (true)循环

当isrunning==false时退出循环

循环中控制下睡眠时间

其中index是调用业务方法的间隔周期

用50ms来控制,是希望能及时响应标识isrunning值的变化

        index = index - 50
          if (index <= 0) {
            index = 5000
          }

调用的业务方法 : await this.getOrderState();

javascript">async runing() {this.isrunning = true;await global.sleep(1000)var index = 5000while (true) {if (!this.isrunning) {break;}if (index >= 5000) {try {await this.getOrderState();} catch (error) {break; // 如果发生错误,退出循环}}await global.sleep(50)index = index - 50if (index <= 0) {index = 5000}}},

4.定义业务方法

用Promise实现异步调用

记得一定要执行回调方法  resolve();

如果里边还使用了store,就必须要在store的回调方法中执行 resolve(); 

否则会卡死在这个方法里

javascript">async getOrderState() {//实时刷新订单状态return new Promise((resolve) => {this.$store.dispatch('orderform/GetInExecutionOrder').then((res) => {resolve();})})});},


http://www.ppmy.cn/embedded/141115.html

相关文章

16 —— Webpack多页面打包

需求&#xff1a;把 黑马头条登陆页面-内容页面 一起引入打包使用 步骤&#xff1a; 准备源码&#xff08;html、css、js&#xff09;放入相应位置&#xff0c;并改用模块化语法导出 原始content.html代码 <!DOCTYPE html> <html lang"en"><head&…

SAP开发语言ABAP开发入门

1. 了解ABAP开发环境和基础知识 - ABAP简介 - ABAP&#xff08;Advanced Business Application Programming&#xff09;是SAP系统中的编程语言&#xff0c;主要用于开发企业级的业务应用程序&#xff0c;如财务、物流、人力资源等模块的定制开发。 - 开发环境搭建 - 首先需…

unity 使用UI上的数字按钮,给text添加数字,并且显示光标,删除光标前数字,

今天有个需求&#xff0c;输入身份证&#xff0c;但是不用键盘&#xff0c;要点击按钮输入数字&#xff0c;并且可以控制光标&#xff0c; 1、数字按钮&#xff1a;点击后text添加数字内容 2、删除按钮&#xff1a;删除光标前的一个字符 3、左箭头&#xff1a;移动光标向左移动…

医学机器学习:数据预处理、超参数调优与模型比较的实用分析

摘要 本文介绍了医学中的机器学习&#xff0c;重点阐述了数据预处理、超参数调优和模型比较的技术。在数据预处理方面&#xff0c;包括数据收集与整理、处理缺失值、特征工程等内容&#xff0c;以确保数据质量和可用性。超参数调优对模型性能至关重要&#xff0c;介绍了多种调…

TCMC-PMSA; p-SCN-Bn-TCMC; TCMC-PSMA-617

p-SCN-Bn-TCMC拥有双功能配体的特性&#xff0c;既是螯合剂&#xff0c;也具备共价连接到生物靶向载体&#xff08;如抗体、肽和蛋白质&#xff09;的反应位点。该化合物的分子式为C24H37N9O4S4HCl&#xff0c;分子量达到693.5&#xff0c;纯度通常保持在95%以上。p-SCN-Bn-TCM…

缓存使用规范学习

1.规范 size控制: string类型&#xff0c;控制在2KB以内 hash、list、set、zset类型的元素个数&#xff0c;不要超过5000 pipeline命令: 检查多参数命令的参数个数或pipeline命令个数&#xff0c;若值太大&#xff0c;建议减小&#xff08;codis proxy返回结果集超64K&…

使用 Python 实现目标检测

目录 简介环境准备数据集模型选择预处理模型加载与推理结果可视化优化与调参部署与应用参考资料 简介 目标检测是计算机视觉中的一个重要任务&#xff0c;旨在识别图像或视频中的特定对象并标注它们的位置。近年来&#xff0c;深度学习技术的发展使得目标检测的准确性和效率…

websocket是什么?

一、定义 Websocket是一种在单个TCP连接上进行全双工通信的协议&#xff0c;它允许服务器主动向客户端推送数据&#xff0c;而不需要客户端不断的轮询服务器来获取数据 与http协议不同&#xff0c;http是一种无状态的&#xff0c;请求&#xff0c;响应模式的协议(单向通信)&a…