ThrottleTime 操作员的配置参数如何工作?(油门配置)

戈加·科雷利

我已经阅读了油门时间文档,但我没有完全了解操作员。

我知道如何throttleTime(1000)运作。事件到达后,它将跳过所有后续事件 1 秒,然后再次开始此过程。

我难以理解的是究竟是如何ThrottleConfig工作的,这是操作符的第三个参数。

throttleTime<T>(
  duration: number, 
  scheduler: SchedulerLike = async, 
  config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction<T>

leadingtrailing属性如何改变源 Observable 的功能?

我已经阅读了很多文档,但他们没有清楚地解释这一点。

所以有四种选择:

  1. { leading: true, trailing: false }:
    默认选项,接收事件后跳过指定持续时间的其他事件,然后重复。
  2. { leading: false, trailing: true }
    ???
  3. { leading: false, trailing: false }
    对此进行了测试,并且 Observable 根本不发出任何内容。
  4. { leading: true, trailing: true }
    ???
弗里多

throttleTime当它接收到一个新值并且尚未被限制时,将开始一个新的限制间隔(一个不会发出任何项目的时间段)。节流间隔的长度取决于您提供的持续时间。

leadingtrailing指定是否应在节流间隔的开始或结束时发出项目

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ircd-hybrid操作员配置

来自分类Dev

没有操作员的“ if”如何工作?

来自分类Dev

网络配置操作员和UAC问题

来自分类Dev

C# ??操作员在财产,它是如何工作的?

来自分类Dev

操作员/车轮组如何在FreeBSD上工作?

来自分类Dev

操作员在 Laravel 中的工作位置如何?

来自分类Dev

操作员突然不工作

来自分类Dev

“是”操作员未按预期工作

来自分类Dev

操作员旁边的参数解包

来自分类Dev

如何成为高效的操作员+ =

来自分类Dev

如何重载虚拟操作员

来自分类Dev

如何理解新的操作员重载?

来自分类Dev

常规列表:当飞船操作员失败时排序如何工作?

来自分类Dev

Istio操作员规范如何为addonComponents添加“ hub”参数?

来自分类Dev

Javascript:?操作员

来自分类Dev

新线操作员

来自分类Dev

Javascript:?操作员

来自分类Dev

Java ==!= && || 操作员?

来自分类Dev

安全导航操作员(?。)无法在gradle中工作吗?

来自分类Dev

山羊胡子操作员为什么工作?

来自分类Dev

操作员过载停止在R包中工作

来自分类Dev

对操作员删除覆盖的工作方式感到困惑

来自分类Dev

养猪关系操作员可以在袋子上工作吗

来自分类Dev

涉及操作员无法正常工作的程序

来自分类Dev

角度更换管道操作员不工作

来自分类Dev

操作员之间无法正常工作 mysql

来自分类Dev

如果操作员采用三个参数

来自分类Dev

如果操作员采用三个参数

来自分类Dev

为 MLEngine 气流操作员提供参数