我正在尋找一種方式,throttle()
運算符在給定的時間間隔內放棄Observable
中的第一個元素,而不是最後一個元素。RxSwift throttle()獲取第一個元素
在RxSwift - Debounce/Throttle "inverse"中已經提出了類似的問題(並回答了),但是我想避免的答案中存在一些不完善之處。也就是說,在理想的情況下,獲得在Observable
中發射的第一個元素,並且在時間間隔期間任何未來的元素都被忽略。但是,與window()
或timer()
一起使用時,有可能兩個元素在的給定時間間隔內繼續,因爲定時器發生時不會平行於throttle()
調用的開始。例如:
|..........|..........|..........|
^^
first second
它們分爲不同的窗口,因此二者通過在鏈接的答案中描述的不完全的溶液接受。
理想情況下,將盡快在窗口的第一個元素進來重啓定時器的一種方式,所以,上面的例子反而會看起來像:
|..........|.......|..........|
^^
first second (ignored)
任何想法?
編輯:很明顯,我不知道RxSwift 3.0-beta1的throttle()種類如何處理這個問題,但我正在尋找RxSwift 2.x實現的解決方案。