const tileApiPromises = [];
response.data.forEach((tile) => {
return getPartnerToken(tile.id).then((response) => {
tileApiPromises.push(getTileContent(tile, response));
});
});
console.log(tileApiPromises) // should give me an array of promises
Promise.all(tileApiPromises) // The goal is to execute this.
我当然在日志中得到空数组。如何在 forEach 之外获得带有 Promise 的数组。感谢您的帮助!
最佳答案
您的代码的问题是推送是异步完成的 - 因此,数组中还没有任何内容!
你说你尝试过 map (在评论中) - 你尝试过这样吗?
const tileApiPromises = response.data.map((tile) => {
return getPartnerToken(tile.id).then((response) => {
return getTileContent(tile, response);
});
});
或者,更性感
const tileApiPromises = response.data.map(tile =>
getPartnerToken(tile.id).then(response => getTileContent(tile, response))
);
关于javascript - 如何在 forEach 循环后填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42435874/