如何使用 Restangular 检查两个同时请求的完成
How to check for completion of two simultaneous requests with Restangular
我正在使用 Restangular 执行 2 个请求,
Restangular.all('clients').getList().then(function(clients) {
$scope.clients = clients;
});
Restangular.all('suppliers').getList().then(function(suppliers) {
$scope.suppliers = suppliers;
});
我想在它们完成后运行一些代码,我该怎么做?
您可以使用 $q.all
并将这两个承诺添加为输入。你需要注入 $q
.
var clientsPromise = Restangular.all('clients').getList().then(function(clients) {
$scope.clients = clients;
});
var suppliersPromise = Restangular.all('suppliers').getList().then(function(suppliers) {
$scope.suppliers = suppliers;
});
$q.all([clientsPromise, suppliersPromise])
.then(function(results){ //This will execute only when both the promises have been fulfilled
//Do something;
});
为了提高可读性,您还可以这样做:-
function populateClients(){
return Restangular.all('clients').getList().then(function(clients) {
$scope.clients = clients;
});
}
function populateSuppliers(){
return Restangular.all('suppliers').getList().then(function(suppliers) {
$scope.suppliers = suppliers;
});
}
$q.all([populateClients(), populateSuppliers()]).then(doSomethingFn, handleError);
q.all 的成功回调将 运行 仅当两个承诺都已解决时,如果其中一个失败,它将转到 catch
块,您可以使用 finally
这将 运行 当所有都满足时。
我正在使用 Restangular 执行 2 个请求,
Restangular.all('clients').getList().then(function(clients) {
$scope.clients = clients;
});
Restangular.all('suppliers').getList().then(function(suppliers) {
$scope.suppliers = suppliers;
});
我想在它们完成后运行一些代码,我该怎么做?
您可以使用 $q.all
并将这两个承诺添加为输入。你需要注入 $q
.
var clientsPromise = Restangular.all('clients').getList().then(function(clients) {
$scope.clients = clients;
});
var suppliersPromise = Restangular.all('suppliers').getList().then(function(suppliers) {
$scope.suppliers = suppliers;
});
$q.all([clientsPromise, suppliersPromise])
.then(function(results){ //This will execute only when both the promises have been fulfilled
//Do something;
});
为了提高可读性,您还可以这样做:-
function populateClients(){
return Restangular.all('clients').getList().then(function(clients) {
$scope.clients = clients;
});
}
function populateSuppliers(){
return Restangular.all('suppliers').getList().then(function(suppliers) {
$scope.suppliers = suppliers;
});
}
$q.all([populateClients(), populateSuppliers()]).then(doSomethingFn, handleError);
q.all 的成功回调将 运行 仅当两个承诺都已解决时,如果其中一个失败,它将转到 catch
块,您可以使用 finally
这将 运行 当所有都满足时。