我在authorize.service.ts
下有以下服务代码块,并从该返回值中,可以获取当前登录用户的userName:
public getUser(): Observable<IUser | null> {
return concat(
this.userSubject.pipe(take(1), filter(u => !!u)),
this.getUserFromStorage().pipe(filter(u => !!u), tap(u => this.userSubject.next(u))),
this.userSubject.asObservable());
}
这是getUserFromStorage()
功能:
private getUserFromStorage(): Observable<IUser> {
return from(this.ensureUserManagerInitialized())
.pipe(
mergeMap(() => this.userManager.getUser()),
map(u => u && u.profile));
}
我在我的login-menu.component.ts文件下调用此服务,在其中获得用户名,如下所示:
ngOnInit() {
this.isAuthenticated = this.authorizeService.isAuthenticated();
this.userName = this.authorizeService.getUser().pipe(map(u => u && u.name));
}
我想要的是获取用户ID的方式也与获取用户名的方式一样。
在组件中添加此功能。