两个异步请求成功后执行第三个异步函数

在公司的项目中有个需求是 每个公司只能有一个主账号,无数个子账号,每个子账号都可以设置为主账号,当设置为主账号的时候,以前的主账号就变为子账号
需要调用三个接口 1. 把当前的主账号设置为子账号 2.把当前的子账号设置为主账号 3. 重新获取到列表中的数据
使用的是Promise.all方法实现


 contactSet(id) {
     console.log(this.mainAccountCompanyId);
     console.log(this.mainAccountBoolean);
     console.log(this.mainAccountName);
     if (this.mainAccountBoolean) {
       this.$confirm(
         `该公司已有联系人为${this.mainAccountName}主账号,确认将该账号设置为主账号?`,
         "提示",
         {
           confirmButtonText: "确认",
           cancelButtonText: "取消",
           type: "warning"
         }
       )
         .then(() => {
           Promise.all([
   						//先把当前的主账号设置为子账号
             setContactStatus({
               user_id: this.mainAccountCompanyId,
               account_type: "2"
             }),
   						//再把子账号设置为主账号
             setContactStatus({
               user_id: id,
               account_type: "1"
             })
           ]).then(res => {
   						//再次调取方法,获取到新的数据
             this.getContactList();
           });
         })
         .catch(() => {});
     } else {
   			//没有主账号的时候直接设置
       this.$confirm("确认将该账号设为主账号?", "提示", {
         confirmButtonText: "确认",
         cancelButtonText: "取消",
         type: "warning"
       })
         .then(() => {
           let params = {
             user_id: id,
             account_type: "1"
           };
           console.log(params);
           setContactStatus(params).then(res => {
             console.log(res);
           });
           this.getContactList();
         })
         .catch(() => {});
     }
   },


以上就是Promise.all的用法

posted @ 2020-01-19 14:00  香荣如梦  阅读(756)  评论(0编辑  收藏  举报