Angular(4):检查Observable是否从另一个服务成功完成

时间:2017-10-26 13:28:39

标签: angular observable

我有一个服务,它有一个检查用户是否有效的方法。

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结果后才能完成。

0 个答案:

没有答案