使用AngularJs 1.6.5我使用for循环进行多个$ http GET调用。这是代码: -
for(var i=0; i < 11; i++){
var url = "/api/learner_qa/" + i;
$http.get(url).then(successCallback, errorCallback);
function successCallback(response){
console.log(response);
};
function errorCallback(error){
console.log(error);
};
};
我想要做的是在完成所有GET请求后触发一个函数。
我提到了帖子here,并想知道如何在我的案例中对阵列进行此操作?
答案 0 :(得分:6)
您需要解决多个承诺的时间可能会出现 马上通过
$q.all()
轻松实现这一点 承诺的数组或对象,两者都会调用.then()
已解决:
您可以将array
和push
个http
来电加入其中
var array = [];
for(var i=0; i < 11; i++){
var url = "/api/learner_qa/" + i;
array.push($http.get(url))
};
$q.all(array).then(function(response) {
console.log(response)
}).catch(function(error){
console.log(error)
});
使用此code
,只有response
成功后requests
才会出现。