代码之家  ›  专栏  ›  技术社区  ›  SunnySydeUp

将可观察映射到可完成时,不调用RxJava2 subscribe

  •  3
  • SunnySydeUp  · 技术社区  · 9 年前

    RxView.clicks(button)
        .flatMapCompletable({ x -> networkCall() })
        .subscribe(...)
    

    点击是可观察到的。
    networkCall
    但是里面的街区 subscribe 当我点击按钮时从未调用。

    RxView.clicks(button)
        .flatMap({ x -> networkCall().toObservable<Void>() })
        .subscribe(...)
    

    我如何才能使其工作,以便每次点击按钮时,都会发出一个网络请求,然后在 订阅 .

    编辑:

    public Completable networkCall() {
        Completable.complete();
    }
    

    所以它保证会完成。

    1 回复  |  直到 9 年前
        1
  •  10
  •   akarnokd    9 年前

    flatMap 案例需要项目,否则其 onComplete

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