我需要从角度控制器进行两次 http.post() 调用,第一次调用的结果将用于下一次调用。除非我们收到前一个结果,否则不应进行下一个调用。这整个逻辑需要在一个循环中重复。
逻辑---> for 1 to 5 function1-->http.post(object1) 返回一个带有数据的延迟承诺,例如 id1 使用 id1 作为下次调用的参数 object2.id=id1 function2--->http.post(object2 ) 返回一些数据。
我需要从角度控制器进行两次 http.post() 调用,第一次调用的结果将用于下一次调用。除非我们收到前一个结果,否则不应进行下一个调用。这整个逻辑需要在一个循环中重复。
逻辑---> for 1 to 5 function1-->http.post(object1) 返回一个带有数据的延迟承诺,例如 id1 使用 id1 作为下次调用的参数 object2.id=id1 function2--->http.post(object2 ) 返回一些数据。
链接你的电话是要走的路。一旦 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
}
)};
}