我有一个服务,它有一个检查用户是否有效的方法。
auth.service :
checkUserValidity(): boolean {
this.isValidUser().subscribe(response => {
console.log('user valid response');
console.log('response');
return true;
}, (error: AppError) => {
console.log('error in checkUserValidaty');
console.log(error);
});
return false;
}
isValidUser(): Observable<any> {
const requestUrl = environment.gatewayUrl + environment.authorizationService + environment.userServiceEndPoint;
return this.httpClient.get(requestUrl).catch(this.errorService.handleError);
}
然后还有另一个类,它正在调用这个服务:
if (this.authService.isLoggedIn() && this.authService.checkUserValidity()) {
return true;
}
问题是checkUserValidity():
总是返回false,因为它不能以异步方式工作。我需要能够确定observable是否完成且没有错误,并且checkUserValidity()
只有在完成评估Observable
结果后才能完成。