说我有一个清单:
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”等的所有响应,并且顺序相同?写这个的最好方法是什么?
答案 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
。