簡體   English   中英

RxSwift Observable.empty() 正在調用 onNext

[英]RxSwift Observable.empty() is calling onNext

檢測何時到達 tableview 底部如果不是底部return 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)

在調試中return Observable.empty()但總是print("reached bottom")

如果你想讓subscribe(onNext)不被 Observable.empty() 調用,只需將.map{}更改為.flatMap{}

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

在這里您可以閱讀mapflatMap之間的區別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM