Mein Service ist:
myApp.service('userService', [
'$http', '$q', '$rootScope', '$location', function($http, $q, $rootScope, $location) {
var deferred;
deferred = $q.defer();
this.initialized = deferred.promise;
this.user = {
access: false
};
this.isAuthenticated = function() {
this.user = {
first_name: 'First',
last_name: 'Last',
email: '[email protected]',
access: 'institution'
};
return deferred.resolve();
};
}
]);
ich dies über in meiner config
Datei aufrufen:
myApp.run([
'$rootScope', 'userService', function($rootScope, userService) {
return userService.isAuthenticated().then(function(response) {
if (response.data.user) {
return $rootScope.$broadcast('login', response.data);
} else {
return userService.logout();
}
});
}
]);
Es ist jedoch beklagt, dass then
keine Funktion ist. Bekomme ich das aufgelöste Versprechen nicht zurück?
@BenjaminGruenbaum Ja, Sie sind richtig, ich wusste nicht, dass '$ timeout' tatsächlich eine Zusage zurückgibt, serviceMethod kann verkürzt werden zu: return $ timeout (function() {return {property: 'value'};}, 1000); – Brocco
Dies kann funktionieren, aber es ist sicherlich kein empfohlener Ansatz für die Rückgabe von Versprechen –
@BenjaminGruenbaum Ich tat, jetzt die Versprechen, die $ Timeout erzeugt. – Brocco