我正在编写一个用于提交时间表的 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调用刷新数据
您需要的是
Promise.all()
var foo = Promise.all(timesheets.map(timeentry => {
api_function = "xxxx"
return axios.post(url, api_function)
}))