gpt4 book ai didi

javascript - 如何使用 Restangular 检查两个同时请求的完成情况

转载 作者:行者123 更新时间:2023-11-28 00:42:53 25 4
gpt4 key购买 nike

我正在使用 Restangular 执行 2 个请求,

  Restangular.all('clients').getList().then(function(clients) {
$scope.clients = clients;
});
Restangular.all('suppliers').getList().then(function(suppliers) {
$scope.suppliers = suppliers;
});

我想在完成后运行一些代码,我该怎么做?

最佳答案

您可以使用$q.all并将两个 promise 添加为输入。并且您需要注入(inject) $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 的成功回调仅在两个 Promise 都得到解决时才会运行,如果其中一个失败,它将转到 catch block ,您可以使用 finally 来当所有都满足时将运行。

关于javascript - 如何使用 Restangular 检查两个同时请求的完成情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27745183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com