2015-01-02 4 views

답변

1

$q.all을 사용하고 두 약속을 모두 입력으로 추가 할 수 있습니다. 그리고 $q을 주사해야합니다.

var clientsPromise = Restangular.all('clients').getList().then(function(clients) { 
    $scope.clients = clients; 
    }); 
    var suppliersPromise = Restangular.all('suppliers').getList().then(function(suppliers) { 
    $scope.suppliers = suppliers; 
    }); 

    $q.all([clientsPromise, suppliersPromise]) 
    .then(function(results){ //This will execute only when both the promises have been fulfilled 
     //Do something; 
    }); 

더 가독성을 위해 당신은 잘 할 수 있습니다 : -

function populateClients(){ 
    return Restangular.all('clients').getList().then(function(clients) { 
     $scope.clients = clients; 
    }); 
} 

function populateSuppliers(){ 
    return Restangular.all('suppliers').getList().then(function(suppliers) { 
     $scope.suppliers = suppliers; 
    }); 
} 

$q.all([populateClients(), populateSuppliers()]).then(doSomethingFn, handleError); 
모두 약속이 해결 될 때 그들 중 하나가 catch로 이동합니다 실패하면 q.all의

성공 콜백 만 실행됩니다 모든 것이 완료되면 실행되는 finally을 사용할 수 있습니다.

+0

감사합니다. Pramod! 도움이 된 –