将observable映射到completable时不会调用RxJava2 subscribe

Sun*_*eUp 2 android rx-binding rx-java2

我有一个需要发出网络请求的点击事件.

RxView.clicks(button)
    .flatMapCompletable({ x -> networkCall() })
    .subscribe(...)
Run Code Online (Sandbox Code Playgroud)

点击是一个Observable.
networkCall返回一个Completable.
但是,subscribe当我点击按钮时,内部的块永远不会被调用.

我也试过了

RxView.clicks(button)
    .flatMap({ x -> networkCall().toObservable<Void>() })
    .subscribe(...)
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它工作,以便每次点击按钮时,都会发出一个网络请求,然后在该处理中进行处理subscribe.

编辑:

我还没有做过网络的东西,所以目前只是

public Completable networkCall() {
    Completable.complete();
}
Run Code Online (Sandbox Code Playgroud)

所以它保证完成.

aka*_*okd 6

flatMap情况下需要的物品,否则其onComplete将永远不会触发由于已经提到从未完成的点击来源.例如:

RxView.clicks(button)
.flatMap({ x -> networkCall().andThen(Observable.just("irrelevant")) })
.observeOn(AndroidSchedulers.mainThread()) 
.subscribe({ v -> System.out.println(v)}, { e -> e.printStackTrace() })
Run Code Online (Sandbox Code Playgroud)