【发布时间】:2016-08-12 15:37:13
【问题描述】:
我正在使用 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;
};
在我的控制器中,我必须使用它和另外两个以相同方式定义的服务功能。
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.all([array of your promises])。 Here 文档。
标签: javascript angularjs chaining