У меня есть два поведенческих объекта
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
)
Когда страница загружается, я получаю 10записей из БД, на Scroll я получаю еще 10 и еще 10 .. вот за что отвечают mergeMap и scan (как и ожидалось).
onFilter все существующие записи удалены (как и ожидалось), и я получаю НОВЫЕ 10 отфильтрованных записей из БД, СЕЙЧАС, когда я прокручиваю, я НЕ получаю больше записей, и у меня они есть в БД.
насколько я знаю, в чем проблема .. в scan operator
есть оператор if else? или некоторые другие операторы, которые я могу использовать перед scan ?