Используйте сервис в качестве провайдера в конфигурации, а также в качестве службы в контроллере

Итак, у меня есть этот сервис:

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);

Есть идеи? заранее спасибо

0 ответов

Другие вопросы по тегам