如何使用 angular js 1 同时执行多个 post 请求

How to Execute Multiple post request simultaneously using angular js 1

我需要 post 相同 url 同时使用多个参数。 如何在 angular 1

中实现

您使用 $http 服务和 $http.post() 请求来完成。如果你想做多个请求,你可以做一个循环。例如。 return $http.post(url,data).then((response)=>{return response.data;})

在这里你需要澄清你所说的“同时”是什么意思,因为如果你想同时接收所有这些请求的响应,那么你需要更高级的东西,比如延迟对象。这就是 $q 服务的目的,它可以帮助您解决此类 Promises。

首先,您需要将所有异步回调收集到一个数组中:

var promises = [];
angular.forEach(array, function(element) { 
  promises.push( $http.post(url,element).then((res)=>{return res.data}) );
}

(随心所欲地传递不同的 parameters/data)

那么你需要同时解决所有这些 $q.all():

$q.all(promises).then((res)=>{ 
  /* do what you need with them, e.g:
     $q.defer().resolve(res)
  */
})

它现在应该解析一个数组,其中包含您之前同步请求中的数据。