gpt4 book ai didi

javascript - 将元素插入数组仅在循环内有效

转载 作者:行者123 更新时间:2023-12-02 23:13:44 24 4
gpt4 key购买 nike

我得到了一些从 API 调用的数据,我正在使用 axios。检索数据时,我将其转储到名为“RefractorData()”的函数内,只是为了对其进行一些组织,然后将其推送到现有数组中。问题是,我的数组被填充到 forEach 中,我可以在那里 console.log 我的数据,但是一旦退出循环,我的数组就是空的。

let matches: any = new Array();
const player = new Player();

data.forEach(
async (match: any) => {
try {
const result = await API.httpRequest(
`https://APILink.com/matches/${match.id}`,
false
);
if (!result) console.log("No match info");
const refractored = player.RefractorMatch(result.data);
matches.push({ match: refractored });
console.log(matches);
} catch (err) {
throw err;
}
}
);
console.log(matches);

现在 forEach 中的第一个 console.log 正确显示数据,forEach 之后的第二个 console.log 显示空数组。

最佳答案

设法用 Promise.all() 做到这一点和 Array.prototype.map() .

const player = new Player();
const matches = result.data;

const promises = matches.map(async (match: any) => {
const response: any = await API.httpRequest(
`https://API/matches/${match.id}`,
false
);

let data = response.data;
return {
data: player.RefractorMatch(data)
};
});
const response: any = await Promise.all(promises);

关于javascript - 将元素插入数组仅在循环内有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57240714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com