rx-java2 – 在RxJava2中创建自定义运算符?

前端之家收集整理的这篇文章主要介绍了rx-java2 – 在RxJava2中创建自定义运算符?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很难找到如何使用Rx Java 2创建自定义运算符的示例.我考虑过几种方法

>使用Observable.create,然后从源observable对其进行flatMaping.我可以让这个工作,但它感觉不对.我最终创建了一个静态函数,我提供了源Observable,然后是源上的flatMap.在OnSubscribe中,然后我实例化一个我传递发射器的对象,它处理和管理Observable / Emitter(因为它不是微不足道的,我希望所有内容都尽可能封装).
>创建一个ObservableOperator并将其提供给Observable.lift.我找不到RxJava 2的任何这个例子.我必须调试我自己的例子,以确保我对上游和下游的理解是正确的.因为我找不到关于RxJava 2的任何示例或文档,我有点担心我可能会意外地做一些我不应该做的事情.
>创建我自己的Observable类型.这似乎是底层运算符的工作方式,其中许多都扩展了AbstractObservableWithUpstream.虽然这里有很多事情,但似乎很容易错过一些东西或做一些我不应该做的事情.我不确定我是否应该采取这样的方法.我逐步完成了心理过程,看起来很快就会变得毛茸茸.

我将继续使用选项#2,但是认为值得问一下,在RxJava2中支持方法是什么,并且还要查明是否有任何文档或示例.

解决方法

不建议初学者使用编写操作符,并且可以通过现有运算符实现许多所需的流程模式.

你看过RxJava关于writing operators for 2.x的维基吗?我建议从上到下阅读.

>使用create()是可能的,但是大多数人使用它来发出带有for-each循环的List的元素,而不是认识到Flowable.fromIterable这样做.
>我们保留了此扩展点,尽管RxJava 2运算符本身不使用lift().如果你想避免使用选项3的样板,那么你可以尝试this route.
>这就是RxJava 2操作符的实施方式. AbstractObservableWithUpstream是一个小便利,external implementors不是必需的.

猜你在找的Java相关文章