javascript - 使用 Angular Js Promises 发出多个异步请求

标签 javascript angularjs promise angular-promise

我有一系列城市及其名称和网址。

$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/

相关文章:

node.js - nodejs+Q promise : no Reference Exception in the fulfillment handle

javascript - 回调函数抛出错误

javascript - jQuery FullCalendar 中未显示的事件

javascript - 将 angularjs $http 响应转换为 string/JSON

javascript - 在 Angular JS 中检索 Iframe 内的数据绑定(bind)值

javascript - 如何在 Node.js 中通用化 http 响应处理程序?

javascript - 无法在 ember 中向后端服务器发出请求(错误 :'No Access-Control-Allow-Origin' )

javascript - 将 iframe 放在 HTML5 中的 canvas 元素中

javascript - jQuery - 将数组值设置为具有相同名称的输入

javascript - 如何有效地使用 JS Promises?