Tengo un caso de uso similar a este
import { BehaviorSubject, combineLatest } from 'rxjs' import { map, debounceTime } from 'rxjs/operators' const items$ = new BehaviorSubject([]); const size$ = new BehaviorSubject(10); const visibleItems$ = combineLatest([items$, size$]) .pipe( debounceTime(0), map(([items, size]) => items.slice(0, size)) );Y algunas veces tengo este escenario
const onData = bigArr => { items$.next(bigArr); }A veces esto
const changeSize = () => { size$.next(20); }Y a veces esto
const onData2 = bigArr => { items$.next(bigArr); size$.next(10); } No quiero activar el flujo observable visibleItems$ varias veces, por lo que una solución que encontré es usar el operador debounceTime con 0 ms para realizar el método onData2 sin ejecutar los operadores de tubería dos veces, pero es un poco difícil de razón de este operador (al menos a primera vista). ¿Cómo puedo reemplazarlo, para que mi código sea más fácil de entender?