我对 Node.JS 还很陌生,而且我真的很讨厌 Promise.all 返回数组的语法。
例如。
const requiredData = await Promise.all([
getFirst(city),
getSecond(hubIds),
getThird(city, customerCategoryKey),
getFourth(request)
])
const firstData = requiredData[0];
const secondData = requiredData[1];
const thirdData = requiredData[2];
const fourthData = requiredData[3];
我需要在单独的代码行中单独获取它们。 有没有类似的方法
const {
firstData,
secondData,
thirdData,
fourthData
} = await Promise.all([
getFirst(city),
getSecond(hubIds),
getThird(city, customerCategoryKey),
getFourth(request)
])
基本上,我真的很希望有比第一个代码片段更干净的方法。
TIA!
最佳答案
正如评论中提到的,您可以使用 Array destructor
而不是使用对象析构函数:
(async () => {
const promise1 = Promise.resolve(3);
const promise2 = 42;
const promise3 = new Promise((resolve, reject) => {
setTimeout(resolve, 100, "foo");
});
// get all elements as variables
const [p1, p2, p3] = await Promise.all([promise1, promise2, promise3]);
console.log(p1, p2, p3);
})();
关于javascript - 更干净的 Promise.all 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61840204/