【发布时间】:2019-08-12 15:46:39
【问题描述】:
此代码的主要目的是检查存储中是否存在值并防止对服务器的额外请求。整个逻辑工作正常,但不幸的是,当过滤器返回 false 时,选择器不会应用于 observable 并且即使值在存储中,数组也是空的。
this.events$ = this.paginationService.page$.pipe(
switchMap(pageIndex => this.store.pipe(
delay(0),
//get objects from store
select(selectEventsPageByGenre(this.musicGenre, { pageIndex: pageIndex, pageSize: 3 })),
//if there are no objects from select() the dispatch server request
filter(events => events.length === 0),
map(() => {
this.store.dispatch(new EventsPageRequested({
musicGenre: MusicGenre[this.musicGenre.toUpperCase()],
page: {
pageIndex: pageIndex,
pageSize: 6
}
}));
return [];
})
))
);
过滤器返回false时如何从选择器返回值(如果数组不为空)?
提前致谢
【问题讨论】:
标签: angular rxjs ngrx ngrx-store