我需要从角度控制器进行两次http.post()调用,第一次调用的结果将在下一次调用中使用。除非我们收到前一个结果,否则不应进行下一次调用。 整个逻辑需要在循环中重复。
逻辑---> 为1至5 function1 - > http.post(object1)返回带有数据的延迟保证,例如ID1 使用id1作为下一个调用的参数 object2.id = ID1 function2 ---> http.post(object2)返回一些数据。
答案 0 :(得分: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
}
)};
}