仅在来自$ http.get()

时间:2016-12-26 07:52:46

标签: angularjs function

我正在使用angularjs $ http.get()请求。在页面加载时我正在做两次休息api调用.api正在正确执行。我有一个按钮,它使用来自两个其余api调用的数据.I'面对一个问题,我的函数在$ http.get()响应之前执行,我无法获得所需的结果。如何在两个$ http.get的响应后执行我的函数( )请求。任何人都可以帮忙。我现在卡住了

 var responsePromise5 = $http.get("1st rest call");                   
   responsePromise5.success(function(data1) {
         $scope.id = data1.platform.user.id;
	     var responsePromise = $http.get("2nd rest call");            
            responsePromise.success(function(data2) 
             {
             console.log(data2.platform.record);
             $scope.records= data2.platform.record;  		  
             });
             responsePromise.error(function(data2, status, headers, config) {
             alert("AJAX failed!");
             });	  
           });
            responsePromise5.error(function(data1, status, headers, config) {
             alert("AJAX failed!");
        });	
$scope.hello = function(a,b)
{
  //here i want to call another rest api
  }
<div ng-repeat="record in records">
  {{record.name}}
  <button ng-init=hello(record.unin,id)>abc</button>
</div>  

2 个答案:

答案 0 :(得分:0)

您可以使用$q.all() -

  

将多个promises组合成一个promise,当所有输入promise都被解析时解析。

此处有更多详情 - https://docs.angularjs.org/api/ng/service/$q

答案 1 :(得分:0)

then内获取http请求的响应后,拨打您要拨打的任何代码,如下所示

$http.get('first http request').then(function(res){
  $http.get('second http request').then(function(res2){
     // your code
    })
  })