如何将 Observable 实现为 BehaviorSubject collection 的子集 collection

How to implement an Observable as a subset collection of a BehaviorSubject collection

我有一个图片的 BehaviorSubject(因为在某些情况下我需要 .getValue()),以及一个表示标记为收藏的图片的 Observable,它是图片的子集。我的代码有效,这里是:

public pictures: BehaviorSubject<Array<Picture>>;
public favoritesPictures: Observable<Array<Picture>>;

constructor(private http: Http) { 
    this.pictures = new BehaviorSubject([]);
    this.favoritesPictures = Observable.create((observer) => {
        this.pictures.subscribe((pictures) => {
            observer.next(pictures.filter((p) => p.isFavorite));
        });
    });
}

不过我觉得这个语法相当"heavy",有没有更简洁的方法将 Observable 绑定为 BehaviorSubject 的子集?

您可以尝试关注。 BehaviorSubject 是可观察的。

public pictures: BehaviorSubject<Array<Picture>>;
public favoritesPictures: Observable<Array<Picture>>;

constructor(private http: Http) { 
    this.pictures = new BehaviorSubject([]);
    this.favoritesPictures = this.pictures.map((a) => a.filter((p) => p.isFavorite));
}