Angularjs 等待承诺得到解决,抓住召唤的承诺
我有一个associatenewUserTopProject函数,如下所示,用于创建项目和用户的关联。如果addUserToProject服务中存在任何异常,我需要删除该用户Angularjs 等待承诺得到解决,抓住召唤的承诺,angularjs,angular-promise,Angularjs,Angular Promise,我有一个associatenewUserTopProject函数,如下所示,用于创建项目和用户的关联。如果addUserToProject服务中存在任何异常,我需要删除该用户 function createNewUserFailureHandler (user) { return function (error) { UserService.deleteUser(user.userId); }; } function associateNewUserToProject
function createNewUserFailureHandler (user) {
return function (error) {
UserService.deleteUser(user.userId);
};
}
function associateNewUserToProject(responses, project) {
var promises = [];
for (var i = 0; i < responses.length; i++) {
var failureHandler = createNewUserFailureHandler(responses[i][0].data);
promises.push(ProjectService.addUserToProject(project.projectId, responses[i][0].data)
.catch(failureHandler));
}
$q.all(promises).then(function () {
onSave(responses);
});
}
function deleteUser (userId) {
var request = {
method: 'DELETE',
url: UrlBuilderService.buildApiUrl('user', String(userId))
};
return $http(request);
}
函数createNewUserFailureHandler(用户){
返回函数(错误){
UserService.deleteUser(user.userId);
};
}
功能关联Wuser项目(响应、项目){
var承诺=[];
对于(var i=0;i
这样做没有任何问题。但是我想等待deleteUser服务来解决这个问题,我无法弄清楚
如何在catch函数中创建承诺,并在异常情况下等待catch承诺得到解决?我想在异常情况下解析deleteUser服务函数后调用onSave()方法 问题在于
createNewUserFailureHandler
返回的是空函数,而不是承诺
只要这样做,它就会工作得很好:
function createNewUserFailureHandler (user) {
return function (error) {
return UserService.deleteUser(user.userId);
};
}
您可以共享
UserService.deleteUser()
code吗?这是http承诺吗?@MartinGottweis我已经用deleteUser服务函数更新了这个问题。它使用了$http,非常感谢!!!我错过了这份回报声明!!!现在,它的工作正如预期的那样!:)很乐意帮忙。祝你的项目好运。