javascript - angularjs - 执行 ngResource http post 请求的顺序调用函数
问题描述
这是要执行的函数和从表中获取所有条目的 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);
第二个回答是正确的,但第一个是不正确的。每个响应都包含一个列表,并且第二个响应列表的大小强制在第一个响应上,导致响应不正确。如何正确链接这 2 个发布请求请求?
解决方案
您需要从您的函数中返回承诺,即:
$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
}
});
};
然后,您可以使用返回的 Promise 链接您的调用:
$scope.getAllData(tableName1).$promise.then(function() {
$scope.getAllData(tableName2);
});
顺便说一句,这些$resource
示例可能会帮助您更好地理解它。如果你需要管理大量的链式 promise,你应该查看$q.all。
推荐阅读
- karate - 如何在空手道中对两个数组进行一对一映射
- php - Is it possible to update the PHP version of my web template to be up to date with my hosting service?
- apache-flink - flink doesn't output anything
- node.js - Typescript + Mocha/Chai - For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves
- r - Knit Button Results Blank in R markdown
- vim - vim: is there a way to preprocess a file opened by copen
- html - CSS Flexbox children items not taking up full available width
- c++ - How to overloading comparison operator with pointer class
- mongodb - EnsureIndex() 应该在哪些字段上使用?
- android - 已发布应用但 Play 商店未在任何设备上显示更新