async await 同时发起多个异步请求的方法

时间:2023-03-08 20:34:30
    @action getBaseInfo = async() => {
let baseInfo;
try {
baseInfo = await getBaseInfo(this.id);
if (baseInfo) {
this.baseInfo = baseInfo;
// 发起请求后拿到 promise
const visitedPromise = getVisitedCount(this.id);
const subscribedPromise = getSubscribedCount(this.id);
const connectionPromise = getConnection(this.id);
// 等待 promise 返回再进行操作
baseInfo.visitedCount = await visitedPromise;
baseInfo.subscribedCount = await subscribedPromise;
const connection = await connectionPromise;
baseInfo.phoneNumber = connection.phoneNumber;
baseInfo.email = connection.email; this.baseInfo = baseInfo;
}
} catch (e) {
throwError(e);
}
};

多个请求的时候不使用 await,而是拿到请求的 promise,将 await 用在 promise 上,等待 promise 返回