共计 567 个字符,预计需要花费 2 分钟才能阅读完成。
当关上页面须要很多初始信息时,需于调用好几个接口,如果采纳异步嵌套形式调研会重大缩短页面的关上工夫。页面关上的工夫是所有接口打开工夫的和。
所以须要并行申请全副接口,而后只须要期待最慢的接口返回。那么页面关上的工夫就是最慢的接口返回数据的工夫。
计划 1:
先同时申请全副接口,而后开始 await。
const userInfoFc = this.getUser();
const authInfoFc = this.getAuth();
const orgInfoFc = this.getOrgTree();
// await 命令前面是一个 Promise 对象
const userInfo = await userInfoFc;
const authInfo = await authInfoFc;
const orgInfo = await orgInfoFc;
计划 2
let [userInfo, authInfo] = await Promise.all([this.getUser(), this.getAuth()]);
PS:
Promise.all 如果开发中,all 有一个失败了,如何使程序不走人 catch 中?
let [userInfo, authInfo] = await Promise.all([this.getUser(), this.getAuth()].map(p=>p.catch(e=>e)));
正文完
发表至: javascript
2021-07-01