0
我是新來的反應式編程,它有時候有點複雜。RxJS可觀察的過濾和分組
從服務事件[]
事件看起來給出一個列表就像
Event:
{
beginDate: Date,
name: string,
type: State
}
State:
{
PENDING, FINISHED, UPCOMING
}
我想組這在以下結構
GroupedByMonthEvent:
{
monthYear: Date,
event: Event
}
在命令行式風格我把它寫:
allEvents$: Observable<Tournament[]>;
allEventsGrouped$: Observable<GroupedByMonthEvent[]>;
...
this.allEvents$ = this.store.select(state => state.events);
this.allEventsGrouped$ = this.allEvents$.map(t => {
return _.chain(t).sortBy(function (value) {
return new Date(value.beginDate);
})
.groupBy(function (event) {
return moment(event.beginDate).format('MMMM YYYY');
}).toPairs()
.map(function (events: Event[]) {
return _.zipObject(['monthYear', 'events'], events);
})
.value();
});
接下來我要過濾該Observerable。 我試圖.map和.filter該集合,但我不明白。 現在我只訂閱Observerable並過濾它過時。
有人可以幫助RxJS魔術組合並過濾它在一個簡單的聲明?