列表中多个元素的角度顺序$ http请求?

时间:2015-03-06 23:38:18

标签: angularjs

说我有一个清单:

var mylist = ["a","b","c","d"];

我想为这些中的每一个请求数据,并以相同的顺序返回响应。

var comeback = [];
getMyData()

function getMyData() {
  for (int i = 0; i < mylist.length; i++) {
    $http.get("http://myurl/" + mylist[i]).success(function(data) {
      results.append(data);
    });
  }
}

如何确保“复出”列表具有基于“a”,“b”等的所有响应,并且顺序相同?写这个的最好方法是什么?

1 个答案:

答案 0 :(得分:0)

链接承诺将使它们串行执行。类似的东西:

var results = [];
getMyData(0);

function getMyData(i) {
    return $http.get("http://myurl/" + mylist[i]).success(function(data) {
      results.push(data);
      i++;
      if(i < mylist.length) {
       getMyData(i);
      }
    });
}

注意:如果您想进行更高级的验证和错误检查,则需要使用$q