Angularjs angular.forEach和loader show中的嵌套$http调用

Angularjs angular.forEach和loader show中的嵌套$http调用,angularjs,ajax,Angularjs,Ajax,我试图显示加载器,直到所有的后调用,直到第4级尚未完成。 代码就像 angular.forEach(level1, function(value,key){ $http({ type : POST, data : value }).then(function(success){ angular.forEach(level2,function(value2,key2){ $http({ type : POST,

我试图显示加载器,直到所有的后调用,直到第4级尚未完成。 代码就像

angular.forEach(level1, function(value,key){
  $http({
     type : POST,
     data : value
  }).then(function(success){
       angular.forEach(level2,function(value2,key2){
         $http({
            type : POST,
            data : { success, value2}
         }).then(function(success){
             .. Till level 4
         },function(error){});
       });
  },function(error){});
});
如何才能等到完成执行才应该完成级别4。每个级别都有自己的角度,forEach()

使用$q.all()等待特定级别的所有承诺完成

var promises = [];
var level =1;
angular.forEach(level1, function(value,key){
 var promise = $http({
     type : POST,
     data : value})
 promises.push(promise);
})
//inject the $q libary
$q.all(promises).then(function(){
  level = 2;
  promises = [];
  angular.forEach(level2, function(value,key){
 var promise = $http({
     type : POST,
     data : value})
 promises.push(promise);
})
})

//冲洗并重复,直到第4级,但在这里,我有最后一次成功调用对当前POST数据的依赖性,以及下一次成功调用中当前成功数据的引用。。我不能像你说的那样使用不同的函数和$q.all(承诺)。