RxJava链式调用遵循可观察的<;无效>;
我一直在包装一个同步库,这样每个执行IO的方法都会返回一个可观察的RxJava链式调用遵循可观察的<;无效>;,java,android,rx-java,Java,Android,Rx Java,我一直在包装一个同步库,这样每个执行IO的方法都会返回一个可观察的。然而,其中一些方法返回可观察的,因为我只关心它的完成情况 如何在一个不发出任何信息的可观察的之后链接调用 accountManager.doAuth() .flatMap(x -> paginator.next()) .observeOn(AndroidSchedulers.mainThread()) .subscribeOn(Schedulers.i
。然而,其中一些方法返回可观察的,因为我只关心它的完成情况
如何在一个不发出任何信息的可观察的之后链接调用
accountManager.doAuth()
.flatMap(x -> paginator.next())
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(... subscriber stuff ...)
我必须为每个请求调用doAuth
,它返回Observable
。由于它不发出项目,因此永远不会调用onNext
,只调用onCompleted
关于doAuth,我只关心它是否完成或出现错误。如果它完成,我希望调用paginator.next()
,这样我就可以在onCompleted/onError/onNext
中实现我自己的逻辑
到目前为止,我一直在使用flatMap
来链接调用,当我真正关心以前的可观察对象返回的内容时,它工作得很好。自1.1.1
发布以来,它具有可完成的,完全符合您的需求。您可以返回Completable
,而不是返回Observable
:
public Completable doAuth(){
return Completable.create(subscriber -> {
//do auth
if(authOk) subscriber.onCompleted();
else subscriber.onError(throwable);
});
}
关于Completable
的好文章:,假设我需要执行一些Completable,然后在最后可以观察到并订阅,我该怎么做?@Shvalb在Completable
中有和操作符,它与observatable
中的平面图非常相似