ich einen Winkel Service haben, die eine Login-Funktion, um in einem Benutzer anmelden sieht vor:Winkel Rückkehr Versprechen, das bereits einen Haken hat
app.service('AuthSharedService', function($rootScope, $http, authService, UserSession) {
this.login = function(email, password, rememberMe) {
return $http.post('/login',
{
'email': email,
'password': password,
'rememberMe': rememberMe
})
.then(function(response){
console.log("success 1");
authService.loginConfirmed(response.data);
}).catch(function(response){
console.log("catch 1");
}).finally(function(response){
console.log("finally 1");
});
};
return this;
});
ich auch einen Controller haben, der mit einem HTML-Anmeldeformular gebunden ist:
app.controller("loginController",
function ($scope, $rootScope, $window, $http, $routeParams, AuthSharedService){
var vm = this;
vm.email;
vm.password;
vm.rememberMe;
vm.login = function(){
AuthSharedService.login(vm.email, vm.password, vm.rememberMe)
.then(function(response){
console.log("success 2");
}).catch(function(response){
console.log("catch 2");
});
}
}
);
Bisher ist es sehr einfach.
Aber wenn ich die Datenbank-Benutzertabelle lösche und dann versuche mich einzuloggen, bekomme ich natürlich einen internen Fehler 500 auf dem REST-Server. Aber die Konsolenausgabe von eckig ist dann:
catch 1
success 2
Aber warum? Kann ich keine $http
zurückgeben, um die .then(function())
und die .catch(function())
zweimal zu verwenden?
Dank für jede Hilfe :)
freundlichen Grüßen