如何在 RxAndroid 中监听变化然后执行动作?

How to listen change and then perform the action in RxAndroid?

 public Flowable<ViewModel> perform(
            Flowable<PaginationParam> paginationSource) {
        return Flowable.combineLatest(
                        mConnectionState.getConnectionState(),
                        mSessionInfo,
                        paginationSource,
                        Holder::combine)
                .flatMap(this::toViewModel); 
}

现在我想在第二页时开始 perform() 所以我的观点是听分页变化,当它不是第一页时(0)然后调用调用 perform()。

final Flowable<PaginationParam > paginationSource =
                mPagination.observe(this).filter(it -> it.getOffset() != 0);

我不知道如何组合这些。?

perform(paginationSource)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(viewModel -> {
 // doAction
}, ex-> {
 // Error
}, ()-> {
 // Completed, will not emit new action
})

你可以改变你的perform功能:

public Flowable<ViewModel> perform(PaginationParam paginationParam) {
    return Flowable.combineLatest(
                    mConnectionState.getConnectionState(),
                    mSessionInfo,
                    {state, info -> Holder.combine(state, info, paginationParam)})
            .flatMap(this::toViewModel); 

}

然后使用它:

paginationSource.flatMap( it -> perform(it))
            .subscribe(...)