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

Posted my466879168

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个异步请求成功后执行第三个异步函数相关的知识,希望对你有一定的参考价值。

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

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的用法

以上是关于两个异步请求成功后执行第三个异步函数的主要内容,如果未能解决你的问题,请参考以下文章

es6 Promise

promise执行顺序

js定时器 settimeout和其他代码是同步执行还是异步执行

jQuery-异步请求

回调与Promise

ES6的Promise