【发布时间】:2021-12-20 12:49:35
【问题描述】:
由于某种原因,这按预期工作:
const metadatasExternal = await Promise.all(
NFTs.map(n => axios.get(n.metadataOnchain?.data.uri!))
)
但这不是:
const metadatasExternal = await Promise.all(
NFTs.map(n => ({
metadataPDA: n.metadataPDA,
metadataExternal: axios.get(n.metadataOnchain?.data.uri!),
}))
)
具体来说,承诺没有得到解决。这就是我得到的回报:
{
metadataPDA: PublicKey {}
metadataExternal: Promise { <pending> }
},
这是为什么呢?我该如何解决?我特别需要在每个 promise 中包含 metadataPDA 键,否则我无法将它们与代码中的另一个数据结构匹配。
【问题讨论】:
-
好吧,为什么要这样呢?
axios.get是返回承诺的那个。您已经将这个承诺隐藏在一个对象键中,并且永远不会等待它。Promise.all期望它等待的 promise 数组。然而,你给了它一个普通对象的数组!
标签: typescript promise