有没有纯粹的功能来订阅Observable?

问题描述

我是Java的老手,但是近年来,我一直在尝试采用一种更加纯粹的函数式编程风格。我发现RxJava是函数式编程思想的很好的补充,如今,我的大多数代码本质上都可以描述为函数式的。 唯一与我坐得不对的方法是,通过/通过可观察的方法订阅/取消订阅可观察到的

的副作用的方式
void subscribe(Observer<? super T> observer)

disposable subscribe(Consumer<? super T> onNext)

在我看来,签名中的void返回类型已经是一个死胡同,我们正在这里处理一些无法正常工作(或至少不是纯粹的)的事情:自subscribe方法不返回值,它只会产生副作用(反过来,这意味着存在可变状态)。 ConsumerObserver中的方法也都是void方法dispose()中的disposable方法也是如此。因此,很明显,所有这些方法都依赖于副作用。

在实际编码中,我通过保留大部分代码(即一系列map / flatMap / filter / ...操作)保持纯净,从而避免了这个问题,同时提取订阅逻辑到代码的特殊“边缘”区域,在该区域中我会处理一些副作用,例如将消息打印到控制台或发送HTTP响应。 当然,Java并不是纯函数式编程语言,因此实现这些副作用没有真正的问题。但是,我想知道,如果有人被一种纯粹的功能语言所限制,那么人们将如何订阅一种可观察的语言或实现一种onNext()?是否有处理订阅的纯粹功能方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)