我怎么知道我的所有$ http GET请求都已完成?

时间:2018-05-30 11:33:55

标签: angularjs

使用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,并想知道如何在我的案例中对阵列进行此操作?

1 个答案:

答案 0 :(得分:6)

  

您需要解决多个承诺的时间可能会出现   马上通过$q.all()轻松实现这一点   承诺的数组或对象,两者都会调用.then()   已解决:

您可以将arraypushhttp来电加入其中

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才会出现。

Here is an example documentation