2017-06-16 80 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这正是我想要的。 –