【发布时间】:2022-01-16 11:18:03
【问题描述】:
我正在我的 React 应用程序中运行这个异步函数 -
const getMetaData = async (hashes: any) => {
console.log({ hashes });
try {
const data = hashes.map(async (hash: any) => {
const url = `http://localhost:3003/user/pinata/getmetadata/${hash}`;
const metadata = await axios.get(url);
return metadata.data.response;
});
console.log("data1", data);
const metadata = await Promise.all(data);
console.log('data2', metadata);
} catch (error) {
console.log('getMetaData Error', error);
}
};
console.log("data1", data) 给我-
data1 (12) [承诺,承诺,承诺,承诺,承诺,承诺,承诺,承诺,承诺,承诺,承诺,承诺]
这里的问题是在我执行await Promise.all(data) 之后,我在控制台的任何地方都没有得到data2。也许是因为 Promise 甚至没有得到解决?
知道可能出了什么问题吗?
提前致谢。
【问题讨论】:
-
嗯,我认为它是由
const data = hashes.map(async (hash: any) => {引起的 -
有什么具体原因吗?不过我收到了
data1。 -
改用
await Promise.all(hashes.map(async (hash: any) => { -
试过了,我也遇到了同样的问题
-
@John OP 已经使用了
await Promise.all,他们只是在记录中间的承诺数组。
标签: javascript async-await promise