Используйте сервис в качестве провайдера в конфигурации, а также в качестве службы в контроллере
Итак, у меня есть этот сервис:
var module = angular.module('app.shared.user', []);
module.service('userService', ['$q', '$http', 'firebaseService', function($q, $http, firebaseService) {
this.isAdmin = undefined;
this.userIdToken = undefined;
let defered = $q.defer();
this.promise = defered.promise;
this.setIdToken = function (token) {
this.userIdToken = token;
defered.resolve(token);
console.log("resolved in user service");
};}])
Я хотел бы использовать его в конфигурации моего приложения. Я попробовал то, что предлагается здесь, но дело в том, что этот метод создает другой экземпляр моей службы в качестве провайдера.
Поэтому, когда setIdToken() вызывается в моем контроллере, мое обещание разрешается в одном случае. Но когда я жду его в конфигурации моего приложения, он никогда не разрешается (другой экземпляр службы, поэтому другой экземпляр переменных).
Поэтому моя цель состоит в том, чтобы использовать эту службу в качестве службы в моем контроллере, которая вызывает метод, который разрешает обещание, объявленное в моей службе, и ожидает разрешения этого же обещания в конфигурации моего приложения.
Это то, что я тоже попробовал в своем конфиге приложения, но безуспешно:
function config(userService) {
userService.promise.then(function (token) {
console.log("token", token);
});
}
config.$inject = ["userServiceProvider"];
app.config(config);
Есть идеи? заранее спасибо