我可以有一个 Observable 发出值供另一个 Observable 使用吗?
Can I have an Observable that emits values to be used by another Observable?
我是 rx-java 的新手,可能没有正确使用它,但这就是我正在尝试做的事情:
我有一个 Observable<String>
将一些数据存储在外部数据库中并发出一个字符串,它是存储数据的路径或键。
我有第二个 Observable<Boolean>
接受一个字符串并将其放入队列并发出该操作是否成功。
我想 'chain' 这两个 Observables 这样当 Observable<String>
发出一条路径时,Observable<Boolean>
将其放入队列并且 returns 是否成功.我想以一个执行这两个操作的 Observable 结束。
我没能找到任何 API 方法让我做我想做的事所以我开始认为我没有正确使用 rx-java 。似乎我需要使用我的 Observable<String>
并调用 .map() 将其变成 Observable<Boolean>
,但是通过这样做我无法使用我原来的 Observable<Boolean>
除了通过只是 运行 它作为 map() 内部的一个阻塞方法,但在那个时候它也可能只是一个 Callable。
编辑:似乎我应该使用 Singles 而不是 Observables,因为我的 Observables 只需要在完成前发出一个值。
看起来 flatMap
就是您要找的。
所以你有:
Observable<String> data;
和方法
Observable<Boolean> putOnQueue(String path);
那么你可以这样做:
Observable<Boolean> result = data.flatMap(path -> putOnQueue(path));
我是 rx-java 的新手,可能没有正确使用它,但这就是我正在尝试做的事情:
我有一个 Observable<String>
将一些数据存储在外部数据库中并发出一个字符串,它是存储数据的路径或键。
我有第二个 Observable<Boolean>
接受一个字符串并将其放入队列并发出该操作是否成功。
我想 'chain' 这两个 Observables 这样当 Observable<String>
发出一条路径时,Observable<Boolean>
将其放入队列并且 returns 是否成功.我想以一个执行这两个操作的 Observable 结束。
我没能找到任何 API 方法让我做我想做的事所以我开始认为我没有正确使用 rx-java 。似乎我需要使用我的 Observable<String>
并调用 .map() 将其变成 Observable<Boolean>
,但是通过这样做我无法使用我原来的 Observable<Boolean>
除了通过只是 运行 它作为 map() 内部的一个阻塞方法,但在那个时候它也可能只是一个 Callable。
编辑:似乎我应该使用 Singles 而不是 Observables,因为我的 Observables 只需要在完成前发出一个值。
看起来 flatMap
就是您要找的。
所以你有:
Observable<String> data;
和方法
Observable<Boolean> putOnQueue(String path);
那么你可以这样做:
Observable<Boolean> result = data.flatMap(path -> putOnQueue(path));