【发布时间】:2018-05-23 01:40:41
【问题描述】:
您好,我有一个私人Subject,我不想公开,所以我从单个Subject 创建不同的Observables:
public numberChange$: Observable<number>;
public oddChange$: Observable<number>;
public evenChange$: Observable<number>;
private number: Subject<number>;
constructor() {
this.number = new Subject<number>();
this.numberChange$ = this.number.asObservable();
this.oddChange$ = this.number.filter(n => n % 2 === 1).asObservable();
this.evenChange$ = this.number.filter(n => n % 2 === 0).asObservable();
}
以便其他人可以订阅numberChange$,如果他们想知道号码何时更改。如果他们只想知道变化是奇数,他们可以订阅oddChange$。 evenChange$ 也是如此。
上面的代码不起作用,因为在this.number.filter() 之后我不能再调用asObservable()。您如何修复上面的代码以实现我所描述的?
【问题讨论】:
-
过滤运算符返回一个Observable,不需要调用asObservable吗?
标签: angular rxjs observable behaviorsubject