我有一个点击事件需要进行网络请求。
RxView.clicks(button)
.flatMapCompletable({ x -> networkCall() })
.subscribe(...)
点击是一个可观察对象。
networkCall
返回一个 Completable。但是当我点击按钮时,
subscribe
中的块永远不会被调用。我也尝试过
RxView.clicks(button)
.flatMap({ x -> networkCall().toObservable<Void>() })
.subscribe(...)
我该如何使这个功能正常工作,以便每次点击按钮时都会发起一个网络请求,并在 subscribe
中处理。
编辑:
目前我还没有做网络请求,所以代码只是……
public Completable networkCall() {
Completable.complete();
}
所以它保证会完成。
onNext
函数,这可能不起作用。你是否也已经在你的订阅器中覆盖了onComplete
函数? - ChristopherRxView.clicks
根本不会完成! http://reactivex.io/RxJava/javadoc/io/reactivex/Observable.html#flatMapCompletable-io.reactivex.functions.Function- - ChristopherflatmapCompletable
不太合适,这就是为什么我也尝试了第二个代码块。我已经重写了onNext
和onComplete
并在这些方法中添加了日志和断点,但它们都没有被触发。然而,即使使用第二个代码块,我仍然担心当网络调用中调用onComplete
时可能会结束流。 - SunnySydeUp