0

我需要从角度控制器进行两次 http.post() 调用,第一次调用的结果将用于下一次调用。除非我们收到前一个结果,否则不应进行下一个调用。这整个逻辑需要在一个循环中重复。

逻辑---> for 1 to 5 function1-->http.post(object1) 返回一个带有数据的延迟承诺,例如 id1 使用 id1 作为下次调用的参数 object2.id=id1 function2--->http.post(object2 ) 返回一些数据。

4

1 回答 1

0

链接你的电话是要走的路。一旦 httpCall1 被解析,它将使用第一个响应调用 httpCall2。

$scope.amountOfCallsToMake = 5;
$scope.results = [];

$scope.makeCalls = function(){
  for(callIndex = 0; callIndex < $scope.amountOfCallsToMake; callIndex++){
    $scope.httpCall1().then(function success(response){
      return $scope.httpCall2(response.data);
    }).then(function success(response){
      $scope.results.push(response.data);
    }
  }
}

$scope.httpCall1 = function(){
  return $http({
    method: 'POST',
    url: //Somewhere
  )};
}

$scope.httpCall2 = function(callResponse){
  return $http({
    method: 'POST',
    url: //Somewhere else,
    data: {
      parameter: callResponse
    }
  )};
}
于 2017-10-13T10:24:11.867 回答