JS多个异步函数同步执行(Promise)

目前有一个需求,调用多个接口(异步),等所有接口运行完之后,用echart统一绘制数据。但是众所周知,接口是异步的,所以不知道什么时候所有的接口才能执行完。这个时候promise就发挥了作用。下面上代码

//需要调用的函数 会调用多次
    getPatientliftInfo(obj, count, itemName) {
      let promise = new Promise((resolve, reject) => {
        var parameter = {
          patientId: obj.patientId,
          count: count,
          itemName: itemName,
        };
        outerAxios(urlGetPatientlife, parameter) //这里请对号入座写你的方法
          .then((res) => {
            if (res.data.length != 0) {
              resolve("一些数据"); // 调用resolve函数 (由进行转变到成功状态)
            } else {
              resolve("一些数据"); // 调用resolve函数 (由进行转变到成功状态)
            }
          })
          .catch((err) => {
            // reject("错误"); // 调用rejected函数(由进行转变到失败状态)
          });
      });
      return promise;
    },
//在这里调用这些函数
Promise.all([
   this.getPatientliftInfo(obj, 120, "心率"), //获取病人的生命体征的接口
   this.getPatientliftInfo(obj, 120, "平均动脉压"), //获取病人的生命体征的接口
   this.getPatientliftInfo(obj, 120, "收缩压"), //获取病人的生命体征的接口
   this.getPatientliftInfo(obj, 120, "ETCO2"), //获取病人的生命体征的接口
   this.getPatientliftInfo(obj, 120, "SpO2"), //获取病人的生命体征的接口
   this.getPatientliftInfo(obj, 120, "呼吸"), //获取病人的生命体征的接口
   ]).then((result) => {
         console.log(result);
         this.$refs.inOperationRisky.updateEchart();
});

如上图所示,采用Promise.all方法,参数为一个promise对象列表。如此操作,就可以等所有异步接口执行完之后,再调用需要执行的方法。非常的方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值