javascript - 如何处理异步axios api调用

标签 javascript arrays reactjs axios

我正在尝试通过 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/

相关文章:

javascript - 点击事件同时打开Popup

sql - 需要从 postgresql 表中动态选择一个 JSON 数组元素

node.js - 无法在React组件中使用process.env,但可以在webpack.config.js中导入它

javascript - 为什么 Button 组件在单击时改变位置?

javascript - 如何将粒子系统初始化为球冠?

javascript - 删除周六和周日,仅获取该月中的几天

javascript - 使用 javascript 时网格中的金额不应小于 0

c++ - 更好地解释数组

python - 加载 numpy 数组时遇到问题,它们在 python 中显示 pickle 数据错误

reactjs - GitHub Primer React组件与Octions的结合使用