2017-05-29 29 views
0

我正在學習RxSwift,我想要實現的是從給定的時間間隔之後獲得從UITextFied打印我text的機制。RxSwift節流閥如何只從流中獲得最後一個值

現在是如何工作的:當我輸入第一個字符時,這個字符立即被打印出來(不是在延遲後我如何預期),如果我繼續輸入長句,每兩秒打印一次text(因爲間隔設置爲油門),但我想只有最新的text價值。

我的代碼:

inputField.rx.text.orEmpty 
     .throttle(2, latest: true, scheduler: MainScheduler.instance) 
     .subscribe(onNext: { text in 
      print("\(text)") 
     }, onDisposed: nil) 
     .addDisposableTo(disposeBag) 

進出口尋找你的幫助的Rx研究員:)謝謝

回答

3

使用debounce而不是throttle

從文檔debounce

忽略從其中隨後 具有特定相對的持續時間內的另一元件,使用 指定的調度程序來運行節流定時器可觀察序列元件。

throttle的文檔。

返回一個可觀察發射第一和由源在指定的持續時間 順序時間窗可觀察發射 最新項目。

+0

完美,謝謝! – Robert

相關問題