我需要同时发布具有多个参数的相同 url。如何在角度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 回答