rx java observable仅链接匹配的observable

时间:2014-12-15 01:45:27

标签: java groovy rx-java

我有一个列表,我正在迭代,我想打印列表中只匹配的项目(我知道这是微不足道的,但它只是rx java的学习练习)。我也在使用groovy扩展。

    def scheduler = Schedulers.immediate()
    Observable.from(["a","b","c"]).takeFirst({
        return it == "b"
    }).subscribeOn(scheduler).subscribe({println it})

这样可行并且只按预期打印b。我想知道是否可以将println it移至subscribeOn之前调用,这样就像

    def scheduler = Schedulers.immediate()
    Observable.from(["a","b","c"]).takeFirst({
        return it == "b"
    }).SOMEOPERATIONHERE({println it}).subscribeOn(scheduler)

我可以使用mapflatmap,但这似乎是错误的,因为我实际上并没有将一个observable映射到另一个。我只想对链末尾的observable执行一些void操作,但我喜欢在subscribeOn调用之前将所有操作放在一起的语法。

1 个答案:

答案 0 :(得分:1)

您可以使用doOnNext注册Observable发出项目时要执行的操作。 RxJava中还有其他doOnXXX运算符用于注册监视Observable进度的操作,例如doOnCompleteddoOnError