等待一系列axios调用返回

问题描述 投票:0回答:1

我正在编写一个用于提交时间表的 React 应用程序,并且在尝试一次提交一堆条目时遇到问题。每个条目都必须在单独的 API 调用中提交,所以到目前为止我所得到的内容如下所示。如果这也有帮助的话,这在 redux Thunk 中。

var foo = new Promise((resolve, reject) =>{
    timesheets.forEach(timeentry => {
        api_function = 'XXXXXX' // string for submitting 1 entry
  
        axios.post(url, api_function);
    }
})

这个想法是,一旦所有这些都发布了,我可以再次调用来刷新我必须为前端显示的时间表数据。我遇到的问题是,并非所有帖子都正确发布,有时只有 2-3 个帖子通过。

我做了一些控制台日志记录,以查看 forEach 循环运行了正确的次数,并且 api_function 字符串在每个循环中发送了正确的数据。

我不确定哪些条目正确发送、哪些没有正确发送的逻辑,因为它并不总是前 2-3 个有效,但似乎是随机选择哪些条目。

如果有更好的方法来做到这一点,那也将不胜感激,总而言之,我正在寻找一种方法来调用一系列 POST api 调用,等待它们全部完成,然后进行 get调用刷新数据

javascript axios
1个回答
0
投票

您需要的是

Promise.all()

var foo = Promise.all(timesheets.map(timeentry => {
   api_function = "xxxx"
   return axios.post(url, api_function)
}))
© www.soinside.com 2019 - 2024. All rights reserved.