RxSwift Observable.empty() 正在调用 onNext

RxSwift Observable.empty() is calling onNext

检测何时到达表格视图底部 如果不是底部 return Observable.empty() 如果 tableview 位于底部 return Observable.just(())

据我所知,Observable.empty() 没有调用 onNext

empty()just() 调用 onNext

tableView.rx.contentOffset
            .map {
                self.isNearTheBottomEdge(contentOffset: [=11=], self.tableView) && self.postModel.isLoadingComplete.value
                    ? Observable.just(())
                    : Observable.empty()
            }
            .throttle(3, scheduler: MainScheduler.instance)

            .subscribe(onNext: {
                print("reached bottom")
                self.postModel.nextPage.onNext(())
            },onCompleted: {
                print("complete")
            }
            )
            .disposed(by: disposeBag)

return Observable.empty() 处于调试状态但总是 print("reached bottom")

如果你想让 subscribe(onNext) 不在 Observable.empty() 上调用,只需将 .map{} 更改为 .flatMap{}

tableView.rx.contentOffset
            .flatMap {
                self.isNearTheBottomEdge(contentOffset: [=10=], self.tableView) && self.postModel.isLoadingComplete.value
                    ? Observable.just(())
                    : Observable.empty()
            }

你可以阅读 mapflatMap

之间的区别