【发布时间】:2020-07-07 08:30:52
【问题描述】:
我在 Angular 6 项目中使用 keycloak-angular 库。
我正在尝试将 keycloakService.logout() 承诺转换为可观察的:
keycloakLogout(): void {
defer(() => this.keycloakService.logout(config.frontUrl + '/home')).subscribe(() => {
localStorage.removeItem('authenticationToken');
this.accountService.authenticate(null)
});
}
我的问题是,每当我调用此方法时,authenticationToken 都不会从 localStorage 中删除。
有什么想法吗?
【问题讨论】:
-
很难说,取决于
this.keycloakService.logout做了什么以及它返回了什么 -
不确定,但我认为
logout()重定向,因此当前页面上不再执行 JavaScript 代码。 -
因此解决方案是首先从本地存储中删除,然后调用
logout而不进行任何订阅。但这只是我的猜测。希望有使用过keyCloak经验的人发表评论。 -
在等待一些更有用的 cmets,您可以尝试使用
.then而不是.subscribe吗?它也不起作用,那么至少您知道它与转换为订阅模式无关。
标签: promise rxjs angular6 observable keycloak