【发布时间】:2016-07-27 09:56:02
【问题描述】:
我是 RxJava 的新手。我目前正在修改现有的同步流程,并使用现有方法返回的 observables 进行异步操作。
在其中一个流程中,我进行远程调用以接收来自数据库的项目。因为对数据库的调用是异步的,所以我返回了一个 observable。但是,该项目可能不存在于数据库中,在这种情况下,该值将为 NULL。
如果值为 NULL,我需要对各种其他远程服务进行额外的异步调用,并最终返回可观察到的响应。
我不明白的是如何用 RxJava 实现这样的流程。这是一个示例伪代码:
void searchSomethingAsych(String key) {
Observable<SearchResult> result = doTheSearch(key);
}
Observable<SearchResult> doTheSearch(String key) {
Observable<SearchResult> resultFromDb = checkIfExistsInDb(key);
// THIS IS WHERE I AM NOT SURE HOW TO DO THIS
resultFromDb.subscribe((result)- > {
if(result == null){
// .. go get this from somewhere else
Observable<SearchResult> resultFromSomewhere = getSearchResultFromSomewhereElse(key);
// how do I return the 'resultFromSomewhere' ????
}
});
}
【问题讨论】:
标签: asynchronous rx-java