所以我有这个服务:
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);
有任何想法吗 ?提前致谢