ES6 Promise初体验之解放你的双手

一直都知道ES6 Promise可以解决无限套娃的问题,这不终于碰到了

需求:一个接口需执行两次分别拿到结果再次提交另外一个接口(小声bb:不知道为何设计的这么复杂)

// 添加子方案
    handleaAddSon(rows, title) {
      return new Promise((resolve, reject) => {
        this.$api.addSonInsert(rows).then((res) => {
          if (res.code == 200) {
            if (title == "推荐方案") {
              this.recommendId = res.rows[0].eventId;
            } else {
              this.comparisonId = res.rows[0].eventId;
            }
            resolve(true);
          } else {
          	//返回错误信息
            reject(res.msg);
          }
        });
      });
    },
   	submitForm() {
	   let p1 = this.handleaAddSon(this.recommend, this.valueRecommend);
       let p2 = this.handleaAddSon(this.compare, this.valueCompare);
       Promise.all([p1, p2])
         .then((val) => {
         	//成功的回调 
         	//成功的信息在上面已经处理所以这里只需接成功之后的操作
           this.handleEditUpdate();
         })
         .catch((error) => {
          	//对错误信息进行处理
           this.$message({
             message: error,
             type: "error",
           });
         });
	}

探索

   handleAdd(time){
       return new Promise((resolve,reject)=>{
           setTimeout(()=>{
               resolve("time:"+time)
           },time)
       })
   },
   async handlePromise(){
       console.log('======start======')
       let p1 = await this.handleAdd(4000);
       console.log(`======${p1}======`)
       let p2 = await this.handleAdd(2000);
       console.log(`======${p2}======`)
       console.log('======end======')
   }

打印结果
在这里插入图片描述
结尾:两种方式都能满足同步业务需求只是写法不同而已,条条大路通罗马

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值