上發射我有一個可變集的子組件(POJO對象),每個具有其自己的狀態流。每次用戶觸發addChild/removeChild/clearChildren時,都會使用#switchMap發送一組新的子狀態流。到現在爲止還挺好! (和RxJS一樣驚訝!)
與Rx.Observable.from(arrayOfStateStreams).combineAll()
只要arrayOfStateStreams
不是一個空數組,我會得到一個好結果。
由於這是一個在更高級別上組合(最新)的部分狀態,我需要發出一個空數組或者全局狀態樹將包含不再爲真的舊狀態數據!
我可以發出一些保留的標記,如['EMPTY-ARRAY-PLACEHOLDER-TOKEN']
,但這很奇怪。 更好的方法是總是將最後一個數據流追加到數組中,這樣最後一個索引可以被認爲是垃圾。儘管如此,代碼和狀態依然令人困惑 使用[null]
是不行的,因爲我們可能有一個子女狀態'null'
。
任何人都可以通過很好的方式解決這個問題嗎?難道這不能被支持,因爲在#combineAll之後不應該有空數組的其他表示形式嗎?
這已在https://github.com/ReactiveX/rxjs/issues/1910 –