如何使用 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)
*/
})
它现在应该解析一个数组,其中包含您之前同步请求中的数据。
我需要 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)
*/
})
它现在应该解析一个数组,其中包含您之前同步请求中的数据。