RxSwift如何从流中获取最后一个值

Rob*_*ert 2 uitextfield swift rx-swift

我正在学习RxSwift,我想实现的就是让机制打印我textUITextFied,但考虑到时间间隔之后.

它现在如何工作:当我输入第一个字符时,这个字符立即被打印出来(不是在延迟之后我的预期)并且如果我继续键入长句,text则在每两秒后打印一次(因为间隔设置在节流中),但是我我想只有最新的text价值.

我的代码:

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

我正在寻找你的帮助Rx研究员:)谢谢

Dan*_* T. 8

debounce而不是throttle.

从以下文档debounce:

忽略来自可观察序列的元素,这些元素在指定的相对持续时间内跟随另一个元素,使用指定的调度程序来运行限制定时器.

从文档中throttle.

返回一个Observable,它在指定持续时间的连续时间窗口期间发出源Observable发出的第一个和最新项.