我有一个产品列表,并为每个产品即时通讯作出API调用,以获得产品订阅。
const subscriptions = await Promise.all(products.flatMap((p: any) => {
const { username, password } = p.credentials;
return GetSubscription(username, password);
}));
console.log(subscriptions);
实际:
[ [ {},] ]
现在你可以看到我这里有一个双嵌套数组,我不需要外部数组,我怎么能展平这个数组,我假设在这里使用flatMap可能会帮助我,但它没有。
预期:
[ {},{},{},]
当然,我可以简单地做subscriptions[0]
,但我试图避免,如果可能的话。
3条答案
按热度按时间oprakyz71#
使用spread运算符
或
正如您在评论中所说,在tsconfig中指定ES2019,您可以使用
Array.flat
:gblwokeq2#
这应该对你有帮助
g2ieeal73#
Array.flatMap()
与Array.map().flat()
相同。因此await Promise.all(Array.map().flat())
将应用于flat
的结果。当map回调是异步的时,您需要在调用flat
之前解析map
的结果。在这种情况下,您需要使用(await Promise.all(Array.map())).flat()
。