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

时间:2018-03-07 08:59:31

标签: angularjs angular-promise angular1.6

我需要同时发布带有多个参数的相同网址。 如何实现角度1

1 个答案:

答案 0 :(得分:2)

您可以使用$http服务$http.post()来执行此操作。如果您想要执行多个请求,可以循环执行。例如。 return $http.post(url,data).then((response)=>{return response.data;})

这是您需要通过同时说" "来澄清你的意思,因为如果你想同时收到所有这些请求的回复,那么你需要一些像延迟对象更先进的东西。这是$q服务的用途,它可以帮助您解决此类Promise。

首先,您需要收集数组中的所有异步回调:

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

(无论你喜欢传递不同的参数/数据)

然后,您需要使用$q.all()

同时解决所有这些问题
$q.all(promises).then((res)=>{ 
  /* do what you need with them, e.g:
     $q.defer().resolve(res)
  */
})

现在应该使用来自先前请求的数据解析数组。