gpt4 book ai didi

java - RxJava : restart from the beginning on each subscription

转载 作者:行者123 更新时间:2023-12-01 22:25:30 24 4
gpt4 key购买 nike

假设我有一些耗时的任务,我只想偶尔运行。

我想将它包装成一个可观察对象并将其传递给某个组件。每当该组件想要检索数据时,它就会订阅此可观察量,并在收到数据后取消订阅。

即我想要一个可观察量,在订阅时会调用一些昂贵的 API 调用,并且此 API 调用每次调用时都可以返回不同的数据 - 然后这个可观察量将关闭,直到进行下一次订阅。

这可以实现吗?

我见过“replay()”和“cache()”运算符,但它们不起作用,因为根据我的理解,它们将缓存一次,然后重播缓存的值,这在我更改数据的情况下失败了。

还有“observable.publish()”,但这似乎会产生一个热 observable,它将始终与源 observable 保持连接......

最佳答案

据我了解你的问题,你需要一个冷的可观察的。

   Observable<Integer> obs = Observable.from(1, 2, 3, 4);
obs.subscribe(); // will iter over values
obs.subscribe(); // will iter AGAIN over values

因此,如果您的 observable 是您的 api 调用,并且它是一个冷 observable,只需订阅它两次即可执行两次 api 调用。

关于java - RxJava : restart from the beginning on each subscription,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28860494/

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