Observable。是观看其中内容的好方法吗?我只是想制作一个观察条件的观察点,即let observable$: Observable<boolean> = Observable.of(a === b);
这是创建可观测量的好方法还是有更好的方法?
答案 0 :(得分:1)
您能否提供有关您的明确示例的更多详细信息?
如果a和b是某种流,你可以让自己成为像这里一样的“观察者”
let condition: Observable<boolean> = a.combineLatest(b).map(([a, b]) => a === b)
编辑:输入值为普通布尔值
然后你可能必须将它们声明为BehaviorSubject。
a = new BehaviourSubject<boolean>(false);
b = new BehaviourSubject<boolean>(false);
要更改或获取当前值,您可以使用a.getValue()
和a.next(true)
现在您有两个流,可以将它们组合起来,如上所示。如果你只需要在模板中使用一次,那么就可以这样做
<p *ngIf="(a | async) === (b | async)">...<>
答案 1 :(得分:0)
Observable的创建方法一旦创建就不会观察值的变化。您可能需要直接使用Observable.create来调用观察者的next
,或者在值发生变化时通过next
创建主题以推送值。
答案 2 :(得分:0)
RxJS并没有这样观察变量 - 它依赖于生成事件的其他事物。
我假设您正在使用Typescript标签中的Angular。
似乎RxJS版本4确实有一个$ watch方法,这可以让你做你想做的事,但是$ watch是一个危险的工具,因为它最终会导致负面的性能影响。
Rxjs 5显然缺少$ watch,并且似乎没有迹象表明如何做到这一点。我认为你需要对此进行一些进一步的研究 - 它可能要求采用不同的方法而不是观察变量,你可能会拦截导致它改变的事件。考虑使用redux方法来通知状态变化。