gpt4 book ai didi

javascript - Javascript 和 Angular 中的链式 Promise

转载 作者:行者123 更新时间:2023-12-03 06:19:58 25 4
gpt4 key购买 nike

我正在使用 Angular 资源从 API 获取数据,方式如下:

var getAccountListPerUser = function () {

return $resource(uri, {}, {
get: {
headers: service.getDefaultHeaderRequest(),
method: 'GET',
transformResponse: function (data) {
var accountList = [];
try {
accountList = JSON.parse(data);
} catch (e) {
accountList = [];
}
return accountList;
},
isArray: true,
cache: true
}
}).get().$promise;
};

在我的 Controller 中,我必须使用它以及以相同方式定义的另外两个服务函数。

var promiseResourcesAccountList = usrWebUserService.getAccountListPerUser();

promiseResourcesAccountList.then(function(result){
$scope.usersWithAccountsAndProfiles = result;
var filteredProfiles = [];
for (var account in result) {
...
}
$scope.filteredProfiles = filteredProfiles;
});

还有:

var promiseResourcesEditUser = usrWebUserService.getResourcesUser(currentUser);

promiseResourcesEditUser.then(function (result) {
usrWebUserFactory.mapBasicPreferences($scope, result);
});

还有另一个非常相似的信息,该信息在三个 div 中加载数据,但我只想在所有三个函数都正确完成时才显示它们。我想我必须把 promise 的结果链接起来。我怎样才能做到这一点?

最佳答案

你可以像这样链接它们:

promiseResourcesAccountList.then(function(result){
///whatever processing
//return a promise
return promiseResourcesEditUser()
}).then(function(){
return anotherPromise();
}).then(function(){
//update scope here
});

或者,您也可以使用 $q.all([promise1,promise2,promise3]).then(...);

关于javascript - Javascript 和 Angular 中的链式 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38921702/

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