【发布时间】:2020-08-13 12:51:13
【问题描述】:
我有一个大型应用程序,其中有很多订阅方法。如果我想退订其中一个,那么我将使用以下代码:
getUsersSubscription: Subscription;
ngOnInit() : void {
this.getUsersSubscription = this.userService().subscribe(users => {
...something
})
}
ngOnDestroy() : void {
this.getUsersSubscription.unsubscribe();
}
问题是我有很多页面 - 也有组件。我有 jwt 令牌,当它过期时,我正在注销用户。问题是当我这样做时,一些电话仍在发生......我如何在注销后取消订阅我的应用程序中的所有内容,这样我就不需要通过页面中的所有组件对我的所有订阅重复此步骤?
另外,我正在使用拦截器来捕获 jwt 过期并将用户重定向到登录页面。但是,如果用户单击某些内容,登录页面中仍然会进行调用 - 在他注销前几秒钟
【问题讨论】:
-
你应该使用拦截器并检查状态码。如果你得到 401 然后在登录屏幕上重定向。
-
我正在使用它。当我重定向到登录页面时,仍然会拨打一些电话,因为并非所有订阅都已取消订阅