运算符 ThrottleLatest 对来自当前 Observable 的项目进行节流,首先发出来自上游的下一个项目,然后在它们之间指定的超时时间到期时定期发出最新的项目(如果有)。
也称为 conflate:它是 throttleFirst 和 sample 的组合,其中频繁的项目会被采样,但采样窗口之外的第一个项目会立即发出。
throttleLatest
如果在此超时阶段没有从上游发出项目,则立即发出下一个上游项目,并且超时窗口从那时开始。
有多个重载可用,允许指定是否应该在终止时发出最后一个项目(如果有),使用哪个调度器以及是否应该对丢弃的项目进行回调。
throttleLatest 的一个变体以您选择的周期性时间间隔运行,您通过将 TimeUnit 和此类单元的数量作为参数传递给 throttleLatest 来选择。
TimeUnit
默认情况下,此变体在 computation Scheduler 上运行,但您可以选择性地将您选择的 Scheduler 作为第三个参数传递。
computation
throttleLatest(long,TimeUnit)
throttleLatest(long,TimeUnit,Scheduler)
throttleLast(long,TimeUnit,Scheduler)
此变体可以选择性地在源终止时发出最后一个项目(如果有)。
throttleLatest(long,TimeUnit,bool)
throttleLatest(long,TimeUnit,Scheduler,bool)
throttleLatest(long,TimeUnit,Scheduler,bool,Consumer)