在我的 React 应用程序中,我有一个参数数组(例如一些 ID),它们应该用作 ajax 调用队列的参数。问题是数组可能包含 1000 多个项目,如果我只是使用 forEach 循环递归地进行 ajax 调用,浏览器页面最终会在每个请求得到解决之前停止响应。
是否有一种技术/库可以允许发送 ajax 请求,例如,一次异步发送 5 个请求,并且仅当这些请求完成后,才继续接下来的 5 个请求?
跟进问题:
最佳答案
好的,让我们解决一些问题。在 JavaScript 中,AJAX 请求本质上是异步的。您选择在您的实现中使它们在某种程度上同步。
您需要做的是有一些请求数组,一次从中弹出 X 个结果,等待它们返回,然后重复。
let ids = [a lot of ids here]
while (ids.length > 0) {
let c = ids.splice(0, 5)
let promises = []
for (let i = 0; i < c.length; i++) {
promises.push(fetch("someURL").then(function() {}))
}
Promise.all(promises)
}
将同时执行 5 个请求,等待它们完成,然后获取下一部分 ID
关于JavaScript、React - 发送多个同时的 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988142/