Я играл с оператором сканирования RX JS, и я не могу обернуться вокруг него. Желаемый результат заключается не в том, что результат сканирования вернул накопленный, а в испущенном items
из источника в случае, если bufferResults
ложно. Следующий фрагмент кода генерирует единственное значение из items
, а не весь массив.
const refreshedItems$ = items$.pipe(
withLatestFrom(this.bufferResults$.pipe(startWith(undefined))),
scan<any>((acc, [src, buffer]) => {
return !buffer ? src : acc.concat(src);
}),
map(([items, ]) => items),
shareReplay(),
tap((items) => console.warn('shareReplay', items)),
);
Может кто-нибудь объяснить, как это работает точно, или вы можете указать мне хорошую статью о том, как это работает