Rxjs 如何创建一个可观察的模型?

Rxjs 如何创建一个可观察的模型?,rxjs,angular5,Rxjs,Angular5,我想我理解了Rxjs中可观测值的概念,但我正在努力将理论转化为代码 我有一个角度分量,比如说C。我希望它应该显示特定的HTML组件,这取决于用户是否登录。为此,我使用的代码与 <ng-container *ngIf = "userNotloggedIn"> ... } 然后在组件中,我订阅可观察到的,如下所示: ngOnInit(){ this.userloggedIn = false; this.userManagementService.userSigned

我想我理解了
Rxjs
可观测值的概念,但我正在努力将理论转化为代码

我有一个角度分量,比如说
C
。我希望它应该显示特定的HTML组件,这取决于用户是否登录。为此,我使用的代码与

<ng-container *ngIf = "userNotloggedIn"> 
...
}

然后在组件中,我订阅可观察到的,如下所示:

ngOnInit(){

    this.userloggedIn = false;
    this.userManagementService.userSignedIn$.subscribe(x=>{console.log("got stream value ",x);
      this.userloggedIn = x})
...

  }
但是上面的代码不起作用。我得到可观察对象发出的第一个值(对应于
this.userManagementService.userSignedIn$.subscribe(x=>{console.log(“got stream value”,x);
),但之后什么都没有

我怀疑这可能是因为我订阅了初始可观测值,但没有订阅在signin和signout函数中创建的新可观测值。我如何解决我的问题?

Observable.of(true)返回一个冷可观测值,它不能随时间而发出新值

将userSignedIn$的行为主题改为

userSignedIn$=new BehabviorSubject();
当您想更新登录状态时,请使用

userSignedIn$.next(true)

谢谢。你知道有没有一种方法可以创建一个随时间而释放值的
可观察的
?在现实生活中,我希望流不会有所有的数据,因此需要在可用时释放值。我想知道为什么我会在
主题上使用
可观察的
Subject
似乎比
Observable
更通用,如果没有初始数据,您可以使用普通Subject(),但它不会存储像BehaviorSubject这样的最新数据。
userSignedIn$.next(true)