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不是必需的.

相关文章

ArrayList简介:ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增...
一、进程与线程 进程:是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。 线程...
本文为博客园作者所写: 一寸HUI,个人博客地址:https://www.cnblogs.com/zsql/ 简单的一个类...
#############java面向对象详解#############1、面向对象基本概念2、类与对象3、类和对象的定义格式4、...
一、什么是异常? 异常就是有异于常态,和正常情况不一样,有错误出错。在java中,阻止当前方法或作用域...
Collection接口 Collection接口 Collection接口 Collection是最基本的集合接口,一个Collection代表一组...