-2

我需要同时发布具有多个参数的相同 url。如何在角度1中实现

4

1 回答 1

3

您可以根据要求提供$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)
  */
})

它现在应该使用来自先前请求的数据同步解析一个数组。

于 2018-03-07T09:18:59.920 回答