将观察结果传递给另一个可观察者

时间:2017-11-21 21:38:38

标签: angular rxjs observable

canActivate route事件接受boolean observable。

我想从authService.getUser()返回实例化的用户对象或null。

根据用户值,我想将true / false返回给布尔值observable。

我该怎么做?

   canActivate() : Observable<boolean>
     {
        let userObservable = this.authService.getUser();
        userObservable.subscribe((user) => {
            if (user == null) {
                  this.authService.startSigninMainWindow();
                  return false;
            }
            else  
            {
                return true;
            }
        });
        return new Observable<boolean>("I want to pass here the 'future' result of the userObservable");
    }

1 个答案:

答案 0 :(得分:3)

return this.authService.getUser()
  .do(user => {
    if (user == null) { 
      this.authService.startSigninMainWindow();
    }
  })
  .map(user => !!user);