gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:06:45 25 4
gpt4 key购买 nike

我无法找到如何使用 RxJava 2 创建自定义运算符的示例。我考虑了几种方法:

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

  • 我将继续使用选项 #2,但我认为值得询问 RxJava2 中支持的执行此操作的方法,并找出是否有任何文档或示例。

    最佳答案

    不建议初学者编写运算符,许多所需的流模式可以通过现有运算符实现。

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

  • 使用 create()是可能的,但大多数人使用它来发出 List 的元素使用 for-each 循环,无法识别 Flowable.fromIterable这样做。
  • 尽管 RxJava 2 操作符不使用 lift(),但我们保留了这个扩展点他们自己。如果你想避免一些带有选项 3 的样板文件,那么你可以尝试 this route .
  • 这就是 RxJava 2 操作符的实现方式。 AbstractObservableWithUpstreamexternal implementors 来说是一个小小的便利,不是必需的.
  • 关于rx-java2 - 在 RxJava2 中创建自定义运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41834506/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com