我是rx-java的新手,可能没有正确使用它,但这就是我想要做的:
我有一个Observable<String>
,它将一些数据存储在外部数据库中,并发出一个String,它是存储数据的路径或键。
我有第二个Observable<Boolean>
,它接受一个字符串并将其放在一个队列中,并发出该操作是否成功。
我想'链接'这两个Observable,这样当Observable<String>
发出一个路径时,Observable<Boolean>
会把它放在队列中并返回它是否成功。我想最终得到一个执行这两个操作的Observable。
我无法找到任何让我做我想做的API方法,所以我开始认为我没有正确使用rx-java。我似乎需要接受Observable<String>
并调用.map()将其转换为Observable<Boolean>
,但通过这样做,我无法使用原来的Observable<Boolean>
而不是只是在map()中将它作为一个阻塞方法运行,但它也可能只是一个Callable。
编辑:似乎我应该使用Singles而不是Observables,因为我的Observable只需要在完成之前发出一个值。
答案 0 :(得分:1)
看起来flatMap
正是您要找的。 p>
所以你有:
Observable<String> data;
和方法
Observable<Boolean> putOnQueue(String path);
然后你可以这样做:
Observable<Boolean> result = data.flatMap(path -> putOnQueue(path));