2017-03-24 12 views
0

すべてのPOST CALLが4レベルまで完了しなくなるまでローダーを表示しようとしています。 コードはLEVEL4を完了する必要があり、完全な実行まで待つことができますどのように

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){}); 
}); 

のようなものです。すべてのレベルは、独自の角度、forEachの()

答えて

1

使用の$ 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

+0

まですすぎと繰り返して特定のレベルのすべての約束まで待つを持っていますが、ここでは、現在のPOSTデータへの最後の成功呼び出しの依存関係と、次の成功呼び出しでの現在の成功データの参照があります。 ..私は述べたように私は異なる機能と$ q.all(約束)を使用することはできません。 –

関連する問題