【发布时间】:2020-04-25 06:24:35
【问题描述】:
我有三个承诺,就像这样
const promiseOne = factoryOne.get();
const promiseTwo = factoryTwo.get();
const promiseThree = factoryThree.get();
需要从函数返回。有什么区别:
return [await promiseOne, await promiseTwo, await promiseThree];
和
await Promise.all([promiseOne, promiseTwo, promiseThree])
return [promiseOne, promiseTwo, promiseThree];
这三个 Promise 在创建时就启动了,所以我不认为会有并行化问题。这两种方法之间有什么问题吗?
【问题讨论】:
-
我猜
Promise.all()一个是同步返回的,并且在你可以使用的函数之外await同时另一个不会返回,直到所有 3 个await的承诺还没有完成。 -
Promise.all()本身是promise当其中一个(任何)失败时被拒绝。
标签: javascript asynchronous async-await