В моей Controller
:Как определить обратный вызов ошибки в AngularJS?
function login(credentials) {
AuthService
.login(credentials)
.then(successCallback, errorCallback);
//same issue with .then(successCallback).catch(errorCallback);
}
function successCallback() {
// do something after success
}
function errorCallback(data) {
// do something after error
}
и в моем AuthService
:
authService.login = function (credentials) {
return $http
.post(ENV.apiEndpoint + 'api/v1/login_check', credentials)
.then(
function (result) {
Session.create(result.data.token, result.data.data);
},
function (data) {
Messages.create('Login failed: ' + data.statusText);
}
);
}
Когда мой POST
обеспечивает код 200 ответов, все работает, как ожидалось do something after success
выполняется.
Но когда мои результаты POST, например. в 401 я вижу, что Message.create вызывается (поэтому в этом случае он входит в путь error
), но, к сожалению, мой контроллер вызывает successCallback
, а не errorCallback
.
Мне пришлось перенести это, потому что я использовал устаревшие и поскольку Угловые 1.6 удалены .success
и .error
атрибуты обещания. Тогда он работал, но после миграции это больше не работает.
Что я здесь делаю неправильно?
вам нужно выбросить из 'Messages.create ('Логин не удалось:' + data.statusText);' блок –
angulra не любит бросать, возвращение '$ q.reject()' лучше –