所以我有这项服务:
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");
};}])
我想在我的应用程序配置中使用它。 我尝试了建议的here,但事实是,此方法创建了我作为提供者的服务的另一个实例。
因此,当在我的控制器中调用setIdToken()时,我的承诺将在一个实例中得到解决。但是,当我在应用程序配置中等待它时,它永远不会被解析(服务的其他实例,变量的其他实例)。
因此,我的目标是将该服务用作控制器中的服务,该方法调用一种方法来解析在服务中声明的promise,然后在我的应用程序配置中等待该promise的解析。
这也是我在应用程序配置中尝试过的方法,但未成功:
function config(userService) {
userService.promise.then(function (token) {
console.log("token", token);
});
}
config.$inject = ["userServiceProvider"];
app.config(config);
有什么想法吗? 预先感谢