我正在学习RxSwift,我想要的是获取机制,从text
打印我UITextFied
,但是在给定间隔后。
现在如何运作:当我输入第一个字符时,这个字符立即被打印出来(不是在延迟之后我的预期)并且如果我继续输入长句,则每两秒后打印text
(作为间隔设置在油门),但我想只有最新的text
值。
我的代码:
inputField.rx.text.orEmpty
.throttle(2, latest: true, scheduler: MainScheduler.instance)
.subscribe(onNext: { text in
print("\(text)")
}, onDisposed: nil)
.addDisposableTo(disposeBag)
我正在寻找你的帮助Rx研究员:)谢谢
答案 0 :(得分:8)
使用debounce
代替throttle
。
来自debounce
的文档:
忽略后面跟着的可观察序列中的元素 指定相对持续时间内的另一个元素,使用 指定的调度程序来运行限制计时器。
来自throttle
的文档。
返回发出第一个和最新项目的Observable 在指定的连续时间窗口期间由源Observable 持续时间。