如何将 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));
}
我有一个图片的 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));
}