让我们看看下面的简单情况:过滤器可观察到的由可观察到的
- 我们有类型的可观察到的苹果可观察<苹果>
- 每个苹果对象有一个方法isRotten()返回一个可观察的type Observable < Boolean>保证至少发出一个布尔值。
我想过滤可观察到的苹果,使腐烂的苹果不通过过滤器。更确切地说,当且仅当A.isRotten()发出的第一项为false时,苹果A才会通过过滤器。什么是实现这个过滤器的最佳方式?
经过一番思考,我可以想出这样的:
这是用JavaScript编写的apples
.concatMap(apple =>
apple.isRotten()
.first()
.filter(bool => bool)
.map(bool => apple))
。 (... => ...是一个函数)。这是有效的,但我认为这是相当冗长和难以理解的。有没有更好的方式来做这种事情?
感谢您的回答,我希望像filterObservable这样的东西存在。但我想我必须自己实现它。 –