我需要一种在 Javascript/Angular 中同时发送多个 AJAX 调用的方法。 经过一番搜索,我找不到答案。 我想做的是尽快发送我所有的请求。 如果我在 for 循环中或在 Angular 中使用 $q 库的 promise 队列中执行我的调用,则会发送一个请求,等待它执行回调,然后发送下一个请求。 这是一个示例代码:
var array = [];
Page.get({id:1}, function(result){
for(var i = 0; i < result.region[0].hotspots.length; i++){
var promise = Hotspot.get({id: result.region[0].hotspots[i].id});
array.push(promise);
}
$q.all(array).then(function(data){
console.log(data);
});
});
Page 是一个 Angular 资源,具有需要 ID 的 get 方法。
我想要的是它们都被同时发送,并在准备就绪时调用它们的回调。返回调用的顺序并不重要。
谢谢
最佳答案
使用 Web Workers 跳出框框思考
解决这个问题的一个有趣方法是使用web workers 在不同的线程 中执行请求。如果你不熟悉网络 worker ,我建议你从这个开始 great tutorial的 techsith .基本上,您将能够同时执行多个作业。另见 W3Schools Documentation .
这article来自 Html5Rocks教我们如何在没有单独的脚本文件的情况下使用 Web Workers。
关于javascript - 循环中的多个 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36693649/