如何解决等待功能,但要使其同步,然后调用最后一个功能
所以我正在使用Vue,Node和打字稿。
我正在获取我所有其他功能所需的数据,因此getDataForFunction123()
需要等待并保持良好状态。
然后我有3个函数正在提取不同的内容,而不是相互依赖。但是所有答案都由最后一个函数updateAfterFunction123IsDone()
使用。但是,当我像现在这样拥有时,我们需要等待功能1、2和3的同步。这需要很多时间。
我想让函数1、2和3可以同时做一些事情,而且还想知道所有3个函数何时完成,然后调用updateAfterFunction123IsDone()
。
代码如下:
async initData () {
await this.getDataForFunction123();
await this.function1();
await this.function2();
await this.function3();
this.updateAfterFunction123IsDone();
}
我认为Promise.all()
不会解决此问题吗?因为它也是按顺序而不是同时执行功能?对?那不会节省我的时间,但是可以节省一些错误处理?
解决方法
Promise.all
的所有诺言都得到兑现后就会触发。因此,请立即运行您的所有功能function1
,function2
,function3
,而无需await
,然后在其承诺得到解决后继续进行操作:
async initData () {
await this.getDataForFunction123();
const p1 = this.function1();
const p2 = this.function2();
const p3 = this.function3();
await Promise.all([p1,p2,p3]);
this.updateAfterFunction123IsDone();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。