2016-04-08 26 views
1

Nesnelerim var ve bazı istekleri yürütmek istiyorum - her nesne için bir tane.angularJS - Sorgu tek tek nasıl yapılır?

$ http-service, uyumsuz modda isteği yürütdüğü için nasıl elde edilir?

zaman uyumsuz gibi/

+0

kullanım vaat: http://jsfiddle.net/jsengel/0ryvkvph/ Sen Evet kodunuzu ya da ne denedi ... – xelilof

+0

, en yakın çözüm. – inspired

cevap

1

Sen $ http callback'inde sonraki isteği çağırabilir C# bekliyor. Böyle şey:

function sendRequestList(objectList) { 

    if (objectList.length > 0) { 
     var currentObject = objectList.pop(); 

     $http.get(/* request params here */) 
     .then(
      function() { 
       sendRequestList(objectList); 
      }, 
      function() { 
       sendRequestList(objectList); 
      } 
     ); 
    } 
} 

Ancak, istediğin bu şekilde elde edebilirim bir yol bilmiyorum. Bu yardımın umarım.

A +

+0

gönderilmesi gerekiyor – Monochromie

1

tüm istekleri devam etmeden önce bitirilmesi için isterseniz, bir söz üretmek için en açısal $q servisini kullanmak ve her istek yapılır sadece bir sonuç geri dönebilirler. birileri tarafından yapılan bu örnekte olduğu gibi zinciri sizin istek için

// all of this in a controller injecting $q 

function fetchAll(objects) { 
    var deferred = $q.defer(); 
    var done = 0; 
    var results = {}; 
    for(var i=0; i < objects.length - 1; i++) { 

     // a trick to avoid every iteration to share same i value 
     (function(index) { 
      $http.get(/* request params here */) 
      .then(
       function(data) { 
        results[index] = data; 
        // or results[object.anyProperty] = data; 
        done++; 
        // ensure all calls are successful 
        if (done === objects.length) { 
         deferred.resolve(); 
        } 
       }, 
       function() { 
        deferred.reject(); 
       } 
      ); 
     })(i); 

    } 

    return deferred.promise; 
} 

// and call it like this 

fetchAll(objects) 
.then(function success(result) { 
    // continue your business 
}, function error(result) { 
    // handle error 
}); 
İlgili konular