ios - RxSwift Observable.empty() 正在调用 onNext

标签 ios swift rx-swift

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

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

但是 empty()just() 调用 onNext

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)

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

最佳答案

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

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

Here您可以阅读 mapflatMap

之间的区别

关于ios - RxSwift Observable.empty() 正在调用 onNext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506806/

相关文章:

ios - 即使重新查询后,UIPickerView 也不显示数据

ios - 在运行 audiokit 的情况下断开耳机会导致 AKOperationEffect 出现 malloc 错误

ios - 我们可以从 swift 框架生成 Objective-C 静态库吗?

ios - 以编程方式创建带有后退按钮的导航 Controller

ios - 需要显示所有项目,连续显示一个项目

ios - com.apple.developer.icloud-container-identifiers 和 com.apple.developer.ubiquity-container-identifiers 之间的区别

swift - RxSwift : What is the usage difference between BehaviorSubject and BehaviorRelay?

ios - 当前上下文中的自定义转换

ios - dyld:库未加载:AdjustSdk.framework

swift - RxSwift 将 Observable<String> 转换为字符串