【问题标题】:What is equivalent of BehaviorSubject (RxJS) in Reactor什么相当于 Reactor 中的 BehaviorSubject (RxJS)
【发布时间】:2020-03-11 09:01:25
【问题描述】:

我精通 RxJS,并在 Reactor 框架 (java) 方面迈出了第一步。

Reactor 中的 BehaviorSubject 相当于什么?

或者与 RxJS 相比,Reactor 中使用的模式是否完全不同?对于了解 RxJS 的人来说,学习 Reactor 有什么好的参考吗?

【问题讨论】:

    标签: project-reactor


    【解决方案1】:

    如前所述,ReplayProcess 已被弃用。下沉似乎是现在要走的路。我认为这应该表现得像一个初始值为“hello”的 BehaviorSubject:

    Sinks.Many<String> behaviorSubject = Sinks
                .many() // multiple values are expected to be emitted
                .replay() // replay value(s) for late subscribers
                .latestOrDefault("hello"); // only replay latest value
    
    // --- usage ---
    behaviorSubject.tryEmitNext("goodbye");
    

    官方文档提到了这一点,可以在这里查看:

    https://projectreactor.io/docs/core/3.4.15/reference/index.html#sinks

    【讨论】:

    • 这应该是公认的答案。
    【解决方案2】:

    BehaviorSubject 是一个热门发布者,我们可以在其中访问甚至在订阅之前发出的最后一个值。

    我们可以通过多种方式在项目反应器中创建热门发布者。可能接近行为主题的是ReplayProcessor。检查here

    Reactor 引用是here

    【讨论】:

    • ReplayProcessor 已弃用:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-04
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    相关资源
    最近更新 更多