RxSwift Observable.empty() 正在调用 onNext

oij*_*djn 5 ios swift rx-swift

检测何时到达 tableview 底部如果不是底部return Observable.empty() 如果 tableview 是底部return Observable.just(())

据我所知Observable.empty(),不是在调用 onNext

但是empty()just()调用下一个

tableView.rx.contentOffset
            .map {
                self.isNearTheBottomEdge(contentOffset: $0, 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)
Run Code Online (Sandbox Code Playgroud)

return Observable.empty() 在调试中但总是 print("reached bottom")

kam*_*soc 1

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

tableView.rx.contentOffset
            .flatMap {
                self.isNearTheBottomEdge(contentOffset: $0, self.tableView) && self.postModel.isLoadingComplete.value
                    ? Observable.just(())
                    : Observable.empty()
            }
Run Code Online (Sandbox Code Playgroud)

在这里您可以了解map与 之间的区别flatMap