我正在尝试通过 tgram 数组/axios api 调用向所有 allIco 对象添加一个属性。当我使用 .map 添加属性时,其值未定义。我知道这是因为我的 api 调用是异步的,但我不知道如何添加 axios.all...任何帮助将不胜感激:)
var allIcos = Object.assign(ico.results);
let tgram = [];
var result = [];
for (let i = 0; i < allIcos.length; i++) {
axios.get(`url=@${tgramUrl[allIcos[i].name]}`).then(response => {
tgram.push(response.data.result);
}).catch(err => console.log(err));
}
var result = allIcos.map((obj,i) => Object.assign({telegram:"test"}, obj));
this.setState({data: allIcos});
console.log(allIcos);
最佳答案
尝试一下promise.all
怎么样?
const promises = [];
for (let i = 0; i < allIcos.length; i++) {
promises.push(axios.get(`url=@${tgramUrl[allIcos[i].name]}`));
}
Promise.all(promises).then(function(values) {
console.log(values);
});
引用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/all
关于javascript - 如何处理异步axios api调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48985502/