2017-06-16 34 views
0
$scope.placeOrder = function() { 

var callbackBalance = apiService.updateBalance($scope.order); 

callbackBalance.then(function(data) { 

    if(data.data.success) { 

     var callback = apiService.createOrder($scope.order); 
     callback.then(function(data){ 
      if(data.data.success) 
      { 
       localStorageService.cookie.clearAll(); 
       alert("Order Placed Successfully"); 
       $state.go("createOrder"); 
      } 
      else 
       alert('Sorry! Cannot place order'); 
     }); 

    } 
    else 
     { 
     alert('Cannot update company balance') 
     } 

    }); 

這是一個代碼來爲公司下訂單並根據訂單總額更新其餘額。代碼工作正常,但根據此代碼首先調用餘額金額API並且一次它的響應是成功訂單API將被調用,並且它的響應將被檢查。但是,我們如何檢查兩者是否成功,然後僅更新數據庫以進行餘額和訂單。現在右側的情況可能是公司的餘額已更新,有些原因沒有下訂單。 我正在爲我的開發使用MEAN堆棧。如何同時檢查多個響應

回答

1

您可以使用$ Q從服務角度

一種服務,幫助您運行功能異步運行,並利用他們的 返回值(或例外),他們都完成處理後。你可以用 創建一個這樣的請求對象

你可以創建請求數組並將它傳遞給$ a.all函數。

var request = [apiService.updateBalance($scope.order), apiService.createOrder($scope.order)] 

,並使用$ q.all功能得到提供的請求同時

$q.all(request).then(function (response) { 

}, function (error) { 

}); 

,將同時獲得請求的數據。確保將$ q添加爲依賴項。

+0

謝謝@GhazanfarKhan這正是我想要的。 –