讓我們看看下面的簡單情況:過濾器可觀察到的由可觀察到的
- 我們有類型的可觀察到的蘋果可觀察<蘋果>
- 每個蘋果對象有一個方法isRotten()返回一個可觀察的type Observable < Boolean>保證至少發出一個布爾值。
我想過濾可觀察到的蘋果,使腐爛的蘋果不通過過濾器。更確切地說,當且僅當A.isRotten()發出的第一項爲false時,蘋果A纔會通過過濾器。什麼是實現這個過濾器的最佳方式?
經過一番思考,我可以想出這樣的:
這是用JavaScript編寫的apples
.concatMap(apple =>
apple.isRotten()
.first()
.filter(bool => bool)
.map(bool => apple))
。 (... => ...是一個函數)。這是有效的,但我認爲這是相當冗長和難以理解的。有沒有更好的方式來做這種事情?
感謝您的回答,我希望像filterObservable這樣的東西存在。但我想我必須自己實現它。 –