我想使用RxJava但不能提出替代方法
public final Observable<T> first(Func1<? super T,java.lang.Boolean> predicate)
在RxJava2中.
我想做的是:
return io.reactivex.Observable
.concat(source1, source2, source3, source4)
.first(obj -> obj != null);
参数source1到source4是我连接的io.reactivex.Observable实例,我希望结果Observable只发出非空的第一个项,但这当然会失败,因为io.reactivex.Observable没有方法(Func1)谓词)像rx.Observable.
如果我在RxJava2中有任何选项,或者更好地坚持使用RxJava1,我有什么选择?
解决方法:
考虑使用Maybe而不是Obulable of nullable类型(它不适用于RxJava2).然后使用Maybe.concat仅将发出的项目作为Flowable.只需获取第一个元素,首先返回Single(您必须指定一个默认项)或firstElement返回Maybe:
Maybe.concat(source1, source2, source3, source4)
.firstElement()