我已经阅读了油门时间文档,但我没有完全了解操作员。
我知道如何throttleTime(1000)
运作。事件到达后,它将跳过所有后续事件 1 秒,然后再次开始此过程。
我难以理解的是究竟是如何ThrottleConfig
工作的,这是操作符的第三个参数。
throttleTime<T>(
duration: number,
scheduler: SchedulerLike = async,
config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction<T>
leading
和trailing
属性如何改变源 Observable 的功能?
我已经阅读了很多文档,但他们没有清楚地解释这一点。
所以有四种选择:
{ leading: true, trailing: false }
:{ leading: false, trailing: true }
:{ leading: false, trailing: false }
:{ leading: true, trailing: true }
:throttleTime
当它接收到一个新值并且尚未被限制时,将开始一个新的限制间隔(一个不会发出任何项目的时间段)。此节流间隔的长度取决于您提供的持续时间。
leading
并trailing
指定是否应在节流间隔的开始或结束时发出项目。
leading:
发射出启动一个新的项目油门间隔在开始时油门的时间间隔。
trailing:
在节流间隔结束时发出从源接收的最后一项。
throttleTime(12 ticks, async, { leading: true, trailing: false })
source: --0--1-----2--3----4--5-6---7------------8-------9--------
throttle interval: --[~~~~~~~~~~~~]---[~~~~~~~~~~~~]--------[~~~~~~~~~~~~]---
output: --0----------------4---------------------8----------------
throttleTime(12 ticks, async, { leading: false, trailing: true })
source: --0--1-----2--3----4--5-6---7------------8-------9--------
throttle interval: --[~~~~~~~~~~~~]---[~~~~~~~~~~~~]--------[~~~~~~~~~~~~]---
output: ---------------3----------------7---------------------9---
throttleTime(12 ticks, async, { leading: true, trailing: true })
source: --0--1-----2--3----4--5-6---7------------8-------9--------
throttle interval: --[~~~~~~~~~~~~]---[~~~~~~~~~~~~]--------[~~~~~~~~~~~~]---
output: --0------------3---4------------7--------8------------9---
throttleTime(12 ticks, async, { leading: false, trailing: false })
source: --0--1-----2--3----4--5-6---7------------8-------9--------
throttle interval: --[~~~~~~~~~~~~]---[~~~~~~~~~~~~]--------[~~~~~~~~~~~~]---
output: ----------------------------------------------------------
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句