1

所以我有这个服务:

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

有任何想法吗 ?提前致谢

4

0 回答 0