java - rx java observable 仅在匹配的 observable 上链接

标签 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,但这似乎是错误的,因为我实际上并没有将一个可观察到的映射到另一个。我只想在链末尾的可观察对象上执行一些 void 操作,但我喜欢在 subscribeOn 调用之前将所有操作放在一起的语法。

最佳答案

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

关于java - rx java observable 仅在匹配的 observable 上链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27476298/

相关文章:

java - 在 Web 服务中包装存储过程的最简单方法是什么?

java - 通过组件构造函数 Autowiring 静态成员

java - TableModel 如何知道该值已更改?

android - 使用 sqlite 开始使用 RxJava

java - 如何合并并行处理 Observables,同时将同一 Observable 中的项目分组在一起

java - 通过带有参数表的注释选择 CDI bean

git - 获取触发管道作业的用户名(手动或 scm 触发器)

jenkins - 将输入步骤显示为弹出窗口,以便在 Jenkins Pipeline 中直观显示

email - 从 Jenkins 作业发送构建日志作为电子邮件的内容

rx-java - 为在 Vert.X 中运行的 RxJava 设置 Hystrix 崩溃的请求上下文