Angularjs 等待承诺得到解决,抓住召唤的承诺

Angularjs 等待承诺得到解决,抓住召唤的承诺,angularjs,angular-promise,Angularjs,Angular Promise,我有一个associatenewUserTopProject函数,如下所示,用于创建项目和用户的关联。如果addUserToProject服务中存在任何异常,我需要删除该用户 function createNewUserFailureHandler (user) { return function (error) { UserService.deleteUser(user.userId); }; } function associateNewUserToProject

我有一个associatenewUserTopProject函数,如下所示,用于创建项目和用户的关联。如果addUserToProject服务中存在任何异常,我需要删除该用户

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,非常感谢!!!我错过了这份回报声明!!!现在,它的工作正如预期的那样!:)很乐意帮忙。祝你的项目好运。