【问题标题】:RxSwift Observable.empty() is calling onNextRxSwift Observable.empty() 正在调用 onNext
【发布时间】:2019-04-04 02:03:37
【问题描述】:

检测何时到达 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)

return Observable.empty() 处于调试状态,但始终为 print("reached bottom")

【问题讨论】:

    标签: ios swift rx-swift


    【解决方案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()
                }
    

    Here 您可以了解mapflatMap 之间的区别

    【讨论】:

      猜你喜欢
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多