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)