【发布时间】:2020-08-01 18:38:49
【问题描述】:
我想要完成的是查看用户会话是否已经存在,如果存在则将它们登录。但我在如何正确执行此操作方面遇到问题。它最有可能与代码执行顺序有关,但我不明白如何解决这个问题。也许是异步的?
获取:
TypeError: 无法读取未定义的属性“订阅”
Sidebar.component.ts:
ngOnInit(): void {
this.authService.isLoggedIn.subscribe(res => {
if (res){
this.isLoggedIn = true;
} else {
this.isLoggedIn = false;
}
});
}
auth.service.ts:
get isLoggedIn(): Observable<boolean> {
const authToken = this.cookieService.get('cookiehere');
// console.log(authToken);
if (authToken) {
this.getUserBySession(authToken).subscribe(res => {
console.log(res);
return of(true);
}, error => {
return of(false);
});
}
if (!authToken){
console.log('No token found!');
return of(false);
}
}
getUserBySession(session) {
return this.http.get(`${this.apiPrefix}/auth/get_user_by_session?session=${session}`, { headers: this.headers })
.pipe(map((res: any) => {
if (res.user) {
this.currentUser = res.user;
return res;
} else {
return res;
}}));
}
【问题讨论】:
标签: angular typescript rxjs