【发布时间】:2017-07-20 13:50:03
【问题描述】:
我试图一次执行两个Maybe,并在两者都完成后调用一个特定的方法。如果两个 Observable 都返回一个值,但在某些情况下可能不会发出一个项目,因此只调用 doOnComplete 而不是 doOnSuccess,则此方法有效。因此,如果其中一个 Maybes 没有调用 doOnSuccess,则不会执行 zip() 块。我想知道如何处理这种情况?
按照我的代码(精简到基本部分):
private void fetchData(){
Maybe<Integer> maybeOne = getId(); // may return Maybe.empty()
Maybe<List<String>> maybeTwo = getList();
Maybe.zip(maybeOne, maybeTwo, (id, list) -> {
initView(id, list); // only called if values have been emitted
return true;
}).subscribe();
}
我希望总是调用 zip() 块,但如果 Maybe 没有调用 onSuccess,则使用 null 值。不是这样的,我可以处理这种情况吗?
【问题讨论】:
标签: android observable rx-java2