首页 文章

如何在继续之前使Angular拦截器延迟?

提问于
浏览
2

我有一个功能正常的Angular 5拦截器用于身份验证,但我想添加身份验证服务的容量,以便能够在继续之前检查本地存储以获取身份令牌 . 不幸的是,我发现应用程序加载速度非常快,应用程序正在使用拦截器进行调用,然后身份验证服务才能更新其状态以宣布它在本地存储中找到了令牌 .

在我看来,我应该能够制作第二个拦截器,它位于第一个拦截器之前,并且不会被观察到.1665846_ s ready$ 可观察到 . 如果我预计会返回 Observable<HttpEvent> ,我会看到如何使它工作 .

authService.ready$ 是一个 BehaviorSubject ,它开始 false ,一旦服务's constructor finishes and we' ve找到一个令牌(或不是),它就是 complete() . AuthenticationInterceptor 侦听 authService.token$ 以获取要注入呼叫的详细信息 . 我对rxjs不熟悉得到这个 . 有任何想法吗?

编辑:似乎我想要使用(实验?)APP_INITALIZER提供商,除非有问题 . Angular4 APP_INITIALIZER won't delay initialization ...我甚至走在正确的轨道上?

1 回答

  • 0

    顶层NgModule中的APP_INTIALIZER,即可以访问bootstrap的那个,就是答案 .

相关问题