我有这个问题,我一直在寻找,但找不到解决方案(或者也许我不能根据其他答案做出解决方案)。
我的问题是,我需要找到一种方法来等待可观察的(有自己的订户)并等待另一个可观察的(有自己的订户)完成。
场景是这样的:
奥布1-
奥布斯2 -
我主要担心的是我需要两个订阅者。在我看来,obs1 和 obs2 并行运行,但需要检查 obs1 是否以新的会话令牌完成。也许这不是RxJava的主要目的。
Obs1连接到一个HTTP连接并获取一个Json,其中包含要填充UI的数据,而obs2相同,但包含其他json和其他信息来填充UI。
对我来说,唯一的问题是我的会话令牌每5分钟到期一次,当我尝试获取新的令牌时,我已经使用过期的会话令牌进行了调用。
简单的解决方案是在on complete()subscribe 1中执行obs2,但我知道使用RxJava是更好的解决方案。
看看zip
,它将允许您组合两个可观察量的结果(如果需要,可以并行运行)。下面是一个示例:
obs1.subscribeOn(Schedulers.io())
.zipWith(obs2.subscribeOn(Schedulers.io()), (x,y) -> new Both(x,y))
.doOnNext(both -> updateUI(both))
.subscribe();
我是这样理解的,从可观察的角度来看: > 有人订阅了我,我应该开始发送项目 [订阅者:1][要发送的项目:1,2,3] 向订阅服务器发送项“1” [订阅服务器:1][要发送的项:2,3] ... 但它不是这样运作的。就像它们是两个独立的可观测物在一个。这让我很困惑,为什么他们不把项目给所有的订户? 奖金: 谢了!
问题是 我有一个活动,它定期从API获取数据并显示收到的数据。API 使用 OAuth,因此我会收到一个临时访问令牌,该令牌在一段时间(1 小时)后过期。如果应用尝试使用过期的令牌获取数据,则显然请求将失败。在我的应用的早期迭代中,我对网络请求使用 AsyncTasks,基本上只是执行了一个新的异步任务,该任务将在调用从服务器获取数据的主异步任务之前获取新的访问令牌。这工作得很好,因为主要的Asy
我必须从两个订阅服务器获取数据,但我总是获取第一个订阅服务器的数据。 我有一个数据共享服务: 在离开搜索组件之前,我调用update方法。 现在,我在results组件上。我得到的共享数据如下: 我的问题是:我需要共享数据来订阅另一个可观察的数据。首先,我构造了一个物体乘坐,在我调用搜索方法之后 问题是我总是从数据服务获取数据,而不是从api调用。api工作导致我在存储中拦截结果,而不是在组件中。
本文向大家介绍system.reactive 订阅/取消订阅可观察对象(IDisposable),包括了system.reactive 订阅/取消订阅可观察对象(IDisposable)的使用技巧和注意事项,需要的朋友参考一下 示例 订阅返回IDisposable: 当您准备取消订阅时,只需处置订阅即可:
在一个服务中,我有两个API调用,每个调用都返回一个可观察的,在我的组件中,我有一些条件,如果为true,我必须调用这两个函数,但我需要等待get()调用,这样我就可以使用get调用返回的参数执行post函数。如果为false,我只想用已经定义的参数调用post函数。 服务: 组成部分: 我不想重复帖子调用的代码,或者如果不可能的话,只是不要在另一个订阅()中使用订阅()。我怎么能这么做?没有异步
我试图理解可观察对象是如何执行的,但似乎无法让这个简单的代码正常工作。 不应该是你好。订阅()执行?