Angular 组合多个RxJS观测值并执行计数任务

Angular 组合多个RxJS观测值并执行计数任务,angular,rxjs,Angular,Rxjs,我是Rxjs新手,我想知道这个问题是否可以解决 给定一个5个可观测阵列,每个阵列都已发出一些数据,如下所示: ary[0]:{a',b',c'} ary[1]:{g',null} ary[2]:{1',f',3',null} ary[3]:{x',y',z'} 元[4]:{h',v'} 我想有一个新的可观察物,它会为计算这5个可观察物中非空的最后元素发出值。在上述情况下,新的可观察物发出的第一个值是3(c,z,v) 每当一个新的数据从一个可观察对象发出时,新的可观察对象也将发出计数结果。例如,当

我是Rxjs新手,我想知道这个问题是否可以解决

给定一个5个可观测阵列,每个阵列都已发出一些数据,如下所示:

ary[0]:{a',b',c'}

ary[1]:{g',null}

ary[2]:{1',f',3',null}

ary[3]:{x',y',z'}

元[4]:{h',v'}

我想有一个新的可观察物,它会为计算这5个可观察物中非空的最后元素发出值。在上述情况下,新的可观察物发出的第一个值是3(c,z,v)

每当一个新的数据从一个可观察对象发出时,新的可观察对象也将发出计数结果。例如,当

ary[4]:{h',v'}变成

ary[4]:{h',v',null}

新的可见光将发射2(c,z)。

您可以与后续的
地图一起使用:

const baseObs=[
新Rx.Subject(),
新Rx.Subject(),
新Rx.Subject(),
新Rx.Subject(),
新Rx.Subject(),
]
常数计数器$=Rx.可观测
.组合测试(baseObs)
.map(dataList=>dataList.filter(d=>d!=null).length);
柜位$订阅(
num=>console.log(`num是${num}`)
);
baseObs[0]。下一个(“a”);
baseObs[1]。下一个(空);
baseObs[2]。下一个(空);
baseObs[3]。下一个(“z”);
baseObs[4]。下一个(“v”);
setTimeout(()=>baseObs[4].next(null),300)

我们可以这样描述您的数据源吗:?如果您可以用一个小的大理石图更新您的问题,我可能会有所帮助:)