У меня есть associateNewUserToProject, как показано ниже, чтобы создать ассоциацию проекта и пользователя. Мне нужно удалить пользователя, если есть какое-либо исключение в службе addUserToProject.Ждать обещания, которое должно быть разрешено в catch обещания вызова
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);
}
Это работает без проблем. Но я хочу дождаться решения для удаления , которое я не могу понять.
Как я могу создать обещание в функции catch и дождаться разрешения решения catch в случае исключения? Я хочу вызвать метод onSave() после deleteUser функция сервиса разрешена в случае исключения.
Не могли бы вы поделиться 'UserService.deleteUser()' код? Это обещание? –
@MartinGottweis Я обновил вопрос с помощью функции _deleteUser_ service. Он использует $ http – user1722043