我有一系列城市及其名称和网址。
$scope.cities = [{'name':'LKO','url': 'http://sm.com'},{'name':'LK1O','url': 'http://sm1.com'}]
现在我需要向城市中存在的网址发出请求。随着一个请求的响应到达,一个又一个请求。
我知道使用 Promise 可以实现这一点。 但是,我无法得到确切的解决方案。
最佳答案
您可以使用 $q.all()
在一系列 Promise 全部解决后运行代码
var promises = $scope.cites.map(function(city) {
return $http.get(city.url).then(function(resp) {
var cityData = resp.data;
// do something with cityData here
// then return it
return cityData;
});
});
$q.all(promises, function(cityDataArray) {
// do something with array
});
这种方法假设请求彼此不依赖,并且比递归执行要快得多
确保将 $q
注入(inject)到您发出这些请求的服务或 Controller
关于javascript - 使用 Angular Js Promises 发出多个异步请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39497388/