gpt4 book ai didi

rx-java - 多个可观察量链接在一起以完成

转载 作者:行者123 更新时间:2023-12-02 04:07:51 25 4
gpt4 key购买 nike

我需要使用第一个可观察结果来创建第二个可观察结果并订阅其结果,有时需要 3 到 4 层可观察结果。完成此任务的最佳方法是什么?

最佳答案

如果你只是简单地链接它们并使用第四个 Observable 作为结果,你可以直接使用这些对象,一切都会正常工作(假设你在这里使用 Scala):

val obs1 = Observable.interval(1 second)
val obs2 = obs1.map(_*2)
obs2.subscribe(println(_))

另一方面,如果obs1是数据源并且您需要多个单独的订阅,则这将不起作用,因为第一个订阅将消耗所有数据。所以这段代码将执行完全相同的操作:

val obs1 = Observable.interval(1 second)
val obs2 = obs1.map(_*2)
obs2.subscribe(println(_))
obs2.subscribe(println("I am never executed !"))

在这种情况下,您必须将这个(冷)Observable 转换为热 Observable,即。 e.一个Subject .

val s = new Subject()
s.onNext("I am a value")
...
s.subscribe(println("first print : "+_))
s.subscribe(println("second print : "+_))

这里所有订阅者都将收到数据。

Here is an example一个复杂的代码,其中您有一个 Observables 主题,它们是特定关键字的 Twitter feed。这是一个Subject,让多个Observables订阅它,然后在不同的Observables中并行做完全不同的事情。

关于rx-java - 多个可观察量链接在一起以完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24371989/

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