我有一组可变的子组件(POJO 对象),每个子组件都有自己的状态流。每次用户触发 addChild/removeChild/clearChildren 时,都会使用#switchMap 发出一组新的子状态流。到现在为止还挺好!(对 RxJS 感到非常惊讶!)
只要不是空数组Rx.Observable.from(arrayOfStateStreams).combineAll()
,我就会得到一个很好的结果。arrayOfStateStreams
由于这是在更高级别上组合(最新)的部分状态,因此我需要发出一个空数组,否则全局状态树将包含不再正确的旧状态数据!
我可以发出一些保留的令牌,例如['EMPTY-ARRAY-PLACEHOLDER-TOKEN']
,但这很奇怪。更好的方法是始终将最后一个流附加到数组中,以便可以将最后一个索引视为垃圾。尽管如此,代码和状态仍然令人困惑。使用[null]
是不行的,因为我们可以有一个'null'
.
任何人都可以很好地解决这个问题?由于在#combineAll 之后不应该有其他空数组表示,因此不能支持这一点吗?