【vue】使用Promise方法保证按顺序执行

使用Promise方法可以叠加.then方法,来保证执行顺序。

queryTasksNum(){// TODO: 如果和queryImg都放在mounted里,会比后者执行得早// 查询未标记数量、已标记数量、已复核数量let that = this;var cntIm0 = 0;var cntIm1 = 0;var cntIm3 = 0;// TODO:如果是同步发送可能会出现问题function getNumIm0(){return new Promise(function(resolve){axios({method:'post',url:'/labelapi/queryTask',data: {"query_status": Number(localStorage.getItem('ms_userrole')) - 1},// headers:{"Content-Type":"multipart/form-data;"}}).then(function (response) {console.log('queryimg:', response.data)cntIm0 = response.data.assignnum;resolve(cntIm0);}).catch(function (error) {console.log(error);});});}function getNumIm1(){return new Promise(function(resolve){axios({method:'post',url:'/labelapi/queryTask',data: {"query_status": Number(localStorage.getItem('ms_userrole')),// 此处每页返回6个图},// headers:{"Content-Type":"multipart/form-data;"}}).then(function (response) {console.log('queryimg:', response.data)cntIm1 = response.data.assignnum;resolve(cntIm1);}).catch(function (error) {console.log(error);});});}function getNumIm3(){return new Promise(function(resolve){axios({method:'post',url:'/labelapi/queryTask',data: {"query_status": Number(localStorage.getItem('ms_userrole')) + 2,// 此处每页返回6个图},// headers:{"Content-Type":"multipart/form-data;"}}).then(function (response) {console.log('queryimg:', response.data)cntIm3 = response.data.assignnum;resolve(cntIm3);}).catch(function (error) {console.log(error);});});}getNumIm0().then(function(data){console.log('cntIm0', data);return getNumIm1();}).then(function(data){console.log('cntIm1', data);return getNumIm3();}).then(function(data){console.log('cntIm3', data);// TODO:最好还是放在外边,想办法确保异步顺序// cntIm2 is error// var cntIm2 = that.imageList.length;var cntIm2 = that.imglength;console.log('queryTasksNum', cntIm0, cntIm1, cntIm2, cntIm3);that.completed=cntIm1 + cntIm2 + cntIm3;that.totalMission=cntIm0 + cntIm1 + cntIm2 + cntIm3;that.followed=cntIm2 + cntIm3;that.totalFollow=cntIm1 + cntIm2 + cntIm3;that.missionCompleted = ((cntIm1 + cntIm2 + cntIm3) / (cntIm0 + cntIm1 + cntIm2 + cntIm3) * 100).toFixed(2);if(isNaN(that.missionCompleted)){that.missionCompleted = 100;}that.followUpCompleted = ((cntIm2 + cntIm3) / (cntIm1 + cntIm2 + cntIm3) * 100).toFixed(2);if(isNaN(that.followUpCompleted)){that.followUpCompleted = 100;}});},

【vue】使用Promise方法保证按顺序执行相关推荐

  1. Rabbitmq如何保证消息顺序执行

    https://www.cnblogs.com/-wenli/p/13047059.html

  2. Vue父组件方法和子组件方法执行优先顺序

    首先,我遇到了一个两个分离的前端项目,该父类组件调用子类组件时,不论是写在mounted还是created中,明明两个方法应该按照顺序执行,和我想的完全不一样,子组件的方法优先执行,父类的方法永远在子 ...

  3. 动态加载js如何保证顺序执行?

    我们知道,可以使用创建script标签的方法来动态加载js文件. 但随之带来问题,如果创建多个script标签来加载多个js文件,这些文件是异步并行加载的,默认添加了async属性,最后执行顺序不能保 ...

  4. js设置ajax执行顺序,ajax同步处理(使得JS按顺序执行)

    在项目中碰到一个问题: 图一: 图二: 函数1代码:这里是因为有ajax请求,默认的是异步的 //点击分页页码,请求后台返回对应页码的数据 function getdata(fewPage,flag, ...

  5. vue 请求时方法执行顺序问题,异步请求无法同时处理多个接口,使用同步顺序执行:async/await使用

    vue 请求时方法执行顺序问题,异步请求无法同时处理多个接口,使用同步顺序执行:async/await使用 异步解决方案:async/await 多个await,同步拿到数据再处理 多个接口处理拿到数 ...

  6. Promise相关内容(三)——异步获取服务器数据:promise方式解决回调地狱的问题。通过多个.then使代码可读性更高 实现异步任务的串行执行,保证按顺序发送请求获取数据

    Promise相关内容(三)--异步获取服务器数据:promise方式解决回调地狱的问题.通过多个.then使代码可读性更高 & 实现异步任务的串行执行,保证按顺序发送请求获取数据 第一种形式 ...

  7. jmeter 线程执行顺序_面试官让我说出8种线程顺序执行的方法!我懵了

    https://www.cnblogs.com/wenjunwei/p/10573289.html 一.前言 本文使用了8种方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中许多常用的方法,不止 ...

  8. ES6 Promise 并行执行和顺序执行

    1.Promise.all 并行执行promise getA和getB并行执行,然后输出结果.如果有一个错误,就抛出错误 /*** 每一个promise都必须返回resolve结果才正确* 每一个pr ...

  9. [转载] --- 让线程按顺序执行8种方法

    看到一篇比较用心的总结,涉及到很多知识点,转来保存,而且我把里面的每个方法都试了一遍,亲测没问题 此次转载,还新增了一些说明和结构 我的总结: 其实,让线程按顺序执行,其实就是一个让多线程强行串行化的 ...

最新文章

  1. 在两个页面间翻转设置Animation动作的一些总结
  2. 校招真题练习011 种花(美团)
  3. 贝叶斯学习举例--学习分类文本
  4. java ftp 下载慢_Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题
  5. nginx php post限制,nginx + php 跨域问题,GET可以跨域成功,POST失败
  6. LeetCode 21. 合并两个有序链表 golang
  7. UI设计灵感|不同形式的图标设计
  8. 安卓miracast花屏_创维酷开电视多屏互动Miracast玩法详解
  9. idea报错Cannot resolve jdk.tools:jdk.tools:1.7
  10. hbuilder版本更新失败_HbuilderX ios无法自定义安装调试基座
  11. h5 兑换商品 页面模版_H5商城静态页面(模板)
  12. 最近电信宽带换光纤了,免费教大家破解电信光纤猫
  13. macbook设置充电上限
  14. DDD | 领域驱动设计初探
  15. Pygame小游戏:玩扫雷就在瞎点的,不止你一个人。
  16. C#文件操作——文件、数据流与注册表
  17. Ubuntu18.04启动后键盘和鼠标失灵
  18. 写html和css怎么分屏,如何使用CSS创建分屏(50/50)?
  19. 【云原生】设备云之前端可视化编程基础
  20. .Net下的分库分表帮助类——用分库的思想来分表 - 秋夜 - 博客园

热门文章

  1. android 生成apk名字自动已,Jenkins打包android应用时自动签名apk详解
  2. php多进程采集百度,php实现多进程下载百度网盘文件
  3. python常用模块用法_python笔记之常用模块用法分析
  4. c语言综合编程,C语言编程入门——综合练习(一)
  5. oracle 执行sql路径,如何指定 SQL 执行路径
  6. 代写python作业费用标准_代做159.272作业、代写Programming Paradigms作业、代做Python实验作业、代写Java/c++编程作业代写Database|代做R...
  7. php 数组对,PHP数组游标实现对数组的各种操作详解
  8. 高阻态是0还是1_羽毛球拍穿线,先拉横线还是竖线?是否横线要比竖线高1到2磅?...
  9. 使用python的笔记
  10. ~~spfa判断图中是否存在负环