我有两个行为主题
offset = new behaviorSubject<sring>(null)
filter = new behaviorSubject<string>(null)
我做以下..
combineLatest(
this.offset, // last item in the list, ID for example
this.filter // can be any string
).pipe(
mergeMap(([offset, filter]) => this.getChunkOfTen(offset, filter)),
scan((acc, chunkOfTen) => {
return { ...acc, ...chunkOfTen }
}, {}),
map(results => Object.values(results)) // to be able to loop on the frontend
)
当页面加载时,我从 DB 中获得 10 条记录,onScroll 我又获得了 10 条和 10 条……这就是mergeMap和scan负责的(如预期的那样)。
onFilter 所有现有记录都消失了(如预期的那样),我从数据库中获得了新的 10 条过滤记录,现在当我滚动时,我没有得到更多记录,我在数据库中有它们。
据我所知,问题出在......在扫描操作员中
是否有 if else 运算符?或者我可以在扫描之前使用的其他一些运算符?