位置: IT常识 - 正文

vue 方法按照顺序执行(vue方法顺序执行)

发布时间:2024-01-07
vue 方法按照顺序执行

推荐整理分享vue 方法按照顺序执行(vue方法顺序执行),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue调整数组顺序,vue的排序,vue sort排序,vue如何控制组件按顺序输出,vue按顺序执行方法,vue按顺序执行方法,vue的排序,vue如何控制组件按顺序输出,内容如对您有帮助,希望把文章链接给更多的朋友!

在调用后台方法的时候,由于调用了多个方法,但是执行的时候并没有按照顺序执行,前端需要后台返回的数据,对数据进行页面展示,由于没有按照顺序执行,导致前台页面报错。解决办法采用new Promise单独执行每个方法,并返回resolve。以下是实现方法:

方式一:

    // 获取标签和绘制曲线数据

    mainMethod() {

      // 执行方法1

      this.method1().then((val) => {

        // 方法2

        this.method2().then((val) => {

          // 方法3

          this.method3().then((val) => {

            //  等待方法1、2、3 执行完成后执行方法“lastMethod”

            this.lastMethod();

          });

        });

      });

    },

    // 方法1

   method1() {

      return new Promise((resolve, reject) => {

        // 调用后端接口getMethod1

        getMethod1("CT01").then((response) => {

          this.detail_method1 = response.data;

          resolve( this.detail_method);

        });

      });

    },

    //  方法2

    method2() {

      return new Promise((resolve, reject) => {

vue 方法按照顺序执行(vue方法顺序执行)

        // 调用后端接口getMethod2

        getMethod2("CT02").then((response) => {

          this.detail_method2= response.data;

          resolve(this.detail_method2);

        });

      });

    },

    // 方法3

    method3() {

      return new Promise((resolve, reject) => {

       // 调用后端接口getMethod3

        getMethod3( "CT03").then((response) => {

          this.detail_method3 = response.data;

          resolve(this.detail_method3);

        });

      });

    },

 lastMethod() {

// 需要执行的方法内容

}

方式二:vue一个页面很多接口时,异步请求的优化 1.使用 Promise.all()

Promise.all() 方法接收一个promise的iterable类型(注:Array,Map,Set都属于ES6的iterable类型)的输入,并且只返回一个Promise实例, 那个输入的所有promise的resolve回调的结果是一个数组。这个Promise的resolve回调执行是在所有输入的promise的resolve回调都结束,或者输入的iterable里没有promise了的时候。它的reject回调执行是,只要任何一个输入的promise的reject回调执行或者输入不合法的promise就会立即抛出错误,并且reject的是第一个抛出的错误信息

     let p1 = new Promise((resolve, reject) => {           getNumber()           resolve('成功了p1')         })

        let p2 = new Promise((resolve, reject) => {           getName()           resolve('成功了p2')         })     let p3 = new Promise((resolve, reject) => {       setTimeout(resolve, 100, 'foo');     });

        Promise.all([p1, p2, p3]).then((result) => {           console.log(result) // ['成功了p1', '成功了p2', 'foo']         }).catch((error) => {         })

Promise.all 在任意一个传入的 promise 失败时返回失败。例如,如果你传入的 promise中,有四个 promise 在一定的时间之后调用成功函数,有一个立即调用失败函数,那么 Promise.all 将立即变为失败。

var p1 = new Promise((resolve, reject) => {   setTimeout(resolve, 1000, 'one'); }); var p2 = new Promise((resolve, reject) => {   setTimeout(resolve, 2000, 'two'); }); var p3 = new Promise((resolve, reject) => {   reject('reject'); });

Promise.all([p1, p2, p3]).then(values => {   console.log(values); }).catch(reason => {   console.log(reason) });

2.Promise.race(iterable) 方法返回一个 promise,一旦迭代器中的某个promise解决或拒绝,返回的 promise就会解决或拒绝。

var p1 = new Promise(function(resolve, reject) {             setTimeout(resolve, 500, "one");         });         var p2 = new Promise(function(resolve, reject) {             setTimeout(resolve, 100, "two");         });

        Promise.race([p1, p2]).then(function(value) {           console.log(value); // "two"           // 两个都完成,但 p2 更快         });

3.Promise.all()与Promise.race()请求时的区别

Promise.all() 适合于后面的异步请求接口依赖前面的接口请求的数据时使用。 Promise.race() 没有先后顺序,那个先请求回来那个先显示

参考链接:

https://www.csdn.net/tags/MtTaEgzsNjAwMzY5LWJsb2cO0O0O.htmlhttps://www.csdn.net/tags/MtTaEgzsNjAwMzY5LWJsb2cO0O0O.html

本文链接地址:https://www.jiuchutong.com/zhishi/288919.html 转载请保留说明!

上一篇:最薄的MP3是什么(mp3格式最高音质)

下一篇:普利特维采湖群国家公园中的高架步道,克罗地亚 (© Alessandro Laporta/Offset by Shutterstock)(普利特维采湖群国家公园天气)

  • 自查补交以前年度增值税怎么做账
  • 一般纳税人附加税优惠政策2023
  • 如何确定交易性金融资产
  • 发票货物名称前带星号规定
  • 开出收据要做财务报表吗
  • 资产处置损益包含增值税吗
  • 公司零星支出没有发票收据怎么开
  • 境内公司代付境外货款
  • 税控设备抵减增值税政策
  • 高速费用支付宝的怎么开票
  • 错误的累计折旧结转会计分录如何调整
  • 绿化工程账务处理支出
  • 年终奖如何合理发放
  • 交房前是否需要给房产局交房租维修费
  • 出售资产时递延所得税怎么处理
  • 公司商务卡可以日常消费
  • 虚开发票走账对方不返还如何处理?
  • 项目分红是否需要交税
  • 应交增值税已交税金的账务处理
  • 个体工商户怎么注册
  • 增值税发票税率6%是什么
  • 非独立核算分公司怎么报税
  • 商业营业用房经营租赁税率是多少
  • 发票已入账跨年可以红冲重开吗
  • 石家庄国税发票查验平台
  • 补发工资如何申请
  • 最新房产税消息2020
  • 金税盘开票怎么改成含税金额
  • 支票能够拿来付款吗
  • 授权费计入什么科目
  • 原始凭证日期大写要求
  • 如何查看本机的ip 网关 和dns配置
  • 企业合并案例
  • 搜索特定
  • php文件类型码
  • win11安装更新时出现一些问题
  • win7系统不可用怎么办
  • 如何更改windows11管理员账户名称
  • 照片文件夹如何压缩
  • win10开机强制进入安全模式重置
  • 因汇率变动而导致的损失属于
  • zabbix 执行命令
  • 单元测试的测试工具
  • 失业保险金退回告知书
  • 融资购买固定资产账务处理
  • 出租车票可以查到行程吗
  • 清算时实收资本需要做收入吗为什么
  • 盈余公积转增资本会计科目
  • 资产处置损益是当期损益吗
  • 小规模教育培训怎样纳税
  • 个人住房租赁给公司如何开票
  • 2020年附加税减免怎么填报表
  • 售出货物
  • 电费应收和实收怎么算
  • 公司开业两年后辞职
  • 负数发票跨月怎么作废
  • 在建工程预付款怎么做账
  • 招待费可以做成什么科目
  • 固定资产处置有什么问题
  • 无发票 入账
  • window windows10
  • xp电脑显示屏显示不全
  • 电脑重装windows
  • 用u盘装系统怎么操作步骤
  • windowssystem32configsystem 损坏
  • linux系统怎么访问网页
  • win10系统怎样卸载程序
  • win10怎么关闭欢迎界面
  • linux中的
  • 多个javascript 合并
  • Android之Broadcast与BroadcastReceiver
  • 风力发电,光伏发电还有哪些
  • 国税公告2016年14解读
  • 福建税务总局电话
  • 怎么注册用户名短的淘宝账号
  • 企业去哪查
  • 四川成都离剑门多远
  • 企业完税证明怎么查询打印
  • 贸易公司服装
  • 为什么国家要收房产税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号