Ric*_*iço 2 java android rx-java
我一直在包装一个同步库,所以每个执行 IO 的方法都会返回一个Observable. 然而,其中一些方法返回,Observable<Void>因为我只关心它的完成情况。
如何在Observable不发出任何内容之后链接调用?
accountManager.doAuth()
.flatMap(x -> paginator.next())
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(... subscriber stuff ...)
Run Code Online (Sandbox Code Playgroud)
我必须doAuth为每个请求调用它并返回Observable<Void>. 由于它不发出项目,onNext因此永远不会被调用,只有onCompleted.
关于doAuth我只关心它是否完成或给出错误。如果它完成,我希望它paginator.next()被调用,以便我可以在onCompleted/onError/onNext.
到目前为止,我一直在使用flatMap链式调用,当我真正关心以前的 Observables 返回的东西时,它工作得很好。
自发布1.1.1 RxJava以来Completable,完全符合您的要求。Observable<Void>您可以返回而不是返回Completable:
public Completable doAuth(){
return Completable.create(subscriber -> {
//do auth
if(authOk) subscriber.onCompleted();
else subscriber.onError(throwable);
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2625 次 |
| 最近记录: |