等待函数,但同步执行,然后调用最后一个函数



所以我使用Vue、Node和typescript。我正在获取所有其他函数都需要的数据,所以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在其所有承诺都得到解决后就会启动。因此,立即运行所有函数function1function2function3,而不运行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();
}

最新更新