所有
我想知道如何安排$ http请求订单并在所有请求完成后检测结束点,我想要做的是:
首先初始化一个获取json的请求,其中包含许多图像名称及其url,然后逐个(或一起)获取它们。准备好所有图像数据后,开始渲染页面以显示所有图像。
由于
答案 0 :(得分:1)
$ http是一个承诺,你可以链接它们。 它看起来像这样:
$http.get('path').then(function (result){
//do something with result
return $http.get('path two');
}).then(function(result){
//result is the resolve promise of $http.get('path two');
});
[编辑]
我认为我在你的案例中找到了更好的东西:$q.all
所以你可以迭代一个路径数组,创建promises,调用all并等待它们全部完成,我没有尝试但它应该看起来像:
var list = ['path', 'path two'];
var promises = [];
for (var i = list.length - 1; i >= 0; i--) {
promises.push($http.get(list[i]));
};
$q.all(promises).then(function(results){
//results is an array, ordered like the promises array
});
答案 1 :(得分:0)
如果你想确保没有请求通过,你可以使用它(对多个请求有用):
$rootScope.isLoading = function () {
return $http.pendingRequests.length > 0;
};