Angular 构造函数完成后注入服务

Angular 构造函数完成后注入服务,angular,typescript,service,httpclient,Angular,Typescript,Service,Httpclient,我编写了一个服务来访问SpotifyAPI。 在构造函数中,此服务应获取访问令牌。 因此,我在一个可观察对象上调用subscribe方法 问题在于: 服务被注入到我的主要组件中。 在那里,我调用该服务的方法来接收来自SpotifyAPI的数据。 我认为问题在于,在api的第一个请求尝试使用它之前,还没有收到访问令牌 如何才能这样做,使服务仅在构造函数完成获取访问令牌后才被注入?如果您希望获取服务的实例,而不是通过构造函数注入,则可能需要使用injector.get方法来获取实例。类似于- con

我编写了一个服务来访问SpotifyAPI。 在构造函数中,此服务应获取访问令牌。 因此,我在一个可观察对象上调用subscribe方法

问题在于:

服务被注入到我的主要组件中。 在那里,我调用该服务的方法来接收来自SpotifyAPI的数据。 我认为问题在于,在api的第一个请求尝试使用它之前,还没有收到访问令牌


如何才能这样做,使服务仅在构造函数完成获取访问令牌后才被注入?

如果您希望获取服务的实例,而不是通过构造函数注入,则可能需要使用injector.get方法来获取实例。类似于-

const notificationService = this.injector.get(NotificationService);
有关更多详情/示例,请参阅-

,,

你不能那样做。让您的服务将访问令牌视为可观察的,如果将令牌对你的应用程序绝对重要的话,你也可以考虑使用A。这将不会解决他们的问题,因为在API请求和依赖性解析之间仍然存在竞争条件,即使是服务最初是在根目录中提供的。