Javascript angularjs-执行ngResource http post请求的顺序调用函数

Javascript angularjs-执行ngResource http post请求的顺序调用函数,javascript,angularjs,http-post,ngresource,Javascript,Angularjs,Http Post,Ngresource,这是要执行的函数和从表中获取所有条目的http post请求的概要。此函数在我的控制器中定义 $scope.getAllData = function (tableName) { var allDataResults = $resource('/getAllDataForTable', {}, { save: { method: 'POST', timeout: 6000 } }); allDataResults.save($scope.all

这是要执行的函数和从表中获取所有条目的http post请求的概要。此函数在我的控制器中定义

$scope.getAllData = function (tableName) {
  var allDataResults = $resource('/getAllDataForTable', {}, {
    save: {
      method: 'POST',
      timeout: 6000
    }
  });
  allDataResults.save($scope.all_data_input, function (response) {
    //Do stuff with response
    }
  });
};
我需要为不同的表名顺序调用此函数。我试着这样简单地叫它两次

$scope.getAllData(tableName1);
$scope.getAllData(tableName2);

第二个回答正确,但第一个回答不正确。每个响应都包含一个列表,第二个响应的列表的大小强制在第一个响应上,从而导致响应不正确。如何正确链接这两个post请求?

您需要返回函数的承诺,即。e、 :

$scope.getAllData = function (tableName) {
  var allDataResults = $resource('/getAllDataForTable', {}, {
    save: {
      method: 'POST',
      timeout: 6000
    }
  });
  return allDataResults.save($scope.all_data_input, function (response) {
    //Do stuff with response
    }
  });
};
然后,您可以使用返回的承诺链接您的呼叫:

$scope.getAllData(tableName1).$promise.then(function() {
  $scope.getAllData(tableName2);
});
顺便说一句,这可能会帮助你更好地理解它。如果你需要管理很多连锁承诺,你应该看看