我很难找到如何使用RxJava 2创建自定义运算符的示例.我考虑过几种方法:
Observable.create,然后flatMap从源可观察到它.我可以让这个工作,但它感觉不对.我最终创建了一个静态函数,我提供了源代码Observable,然后在源代码上提供了flatMap.在OnSubscribe中,然后我实例化一个传递发射器的对象,它处理和管理Observable/Emitter(因为它不是微不足道的,我希望所有内容尽可能封装).ObservableOperator并提供它Observable.lift.我找不到RxJava 2的任何这样的例子.我必须调试我自己的例子,以确保我对上游和下游的理解是正确的.因为我找不到任何有关RxJava 2的示例或文档,我有点担心我可能会意外地做一些我不应该做的事情.Observable类型.这似乎是底层运营商的工作方式,其中许多都在扩展AbstractObservableWithUpstream.虽然这里有很多事情,但似乎很容易错过一些东西或做一些我不应该做的事情.我不确定我是否应该采取这样的方法.我逐步完成了心理过程,看起来它可以很快变得毛茸茸.我将继续使用选项#2,但认为有必要问一下在RxJava2中支持的方法是什么,并且还要查明是否有任何文档或示例.
不建议初学者编写运算符,许多所需的流模式可以通过现有运算符实现。
你看过 RxJava 的关于为 2.x 编写操作符的 wiki吗?我建议从上到下阅读。
create()是可能的,但大多数人使用它来List通过 for-each 循环发出 a 的元素,但没有意识到这样Flowable.fromIterable做。lift()它们自己,但我们保留了这个扩展点。如果您想避免使用选项 3. 的一些样板文件,那么您可以尝试此路线。AbstractObservableWithUpstream对外部实现者来说是一个小小的便利,而不是必需的。| 归档时间: |
|
| 查看次数: |
2345 次 |
| 最近记录: |