Javascript throttleTime操作符';s配置参数是否工作?(节流图)

Javascript throttleTime操作符';s配置参数是否工作?(节流图),javascript,typescript,rxjs,rxjs6,Javascript,Typescript,Rxjs,Rxjs6,我已经读过了,但是我没有完全理解接线员 我知道节流时间(1000)是如何工作的。事件到达后,它将跳过所有后续事件1秒,然后再次启动此过程 我很难理解的是ThrottleConfig是如何工作的,这是操作符的第三个参数 throttleTime<T>( duration: number, scheduler: SchedulerLike = async, config: ThrottleConfig = defaultThrottleConfig): MonoTypeO

我已经读过了,但是我没有完全理解接线员

我知道节流时间(1000)是如何工作的。事件到达后,它将跳过所有后续事件1秒,然后再次启动此过程

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

throttleTime<T>(
  duration: number, 
  scheduler: SchedulerLike = async, 
  config: ThrottleConfig = defaultThrottleConfig): MonoTypeOperatorFunction<T>
throttleTime(
持续时间:数字,
调度器:SchedulerLike=async,
配置:ThrottleConfig=defaultThrottleConfig):MonoTypeOperatorFunction
如何
前导
尾随
属性更改可观察源的功能?

我读过很多文件,但他们没有清楚地解释这一点

因此有四种选择:

  • {leading:true,training:false}

    默认选项,在接收事件后跳过指定持续时间内的其他事件,然后重复
  • {leading:false,training:true}

  • {leading:false,training:false}

    测试了这一点,可观察到的东西根本没有发出任何东西
  • {leading:true,training:true}


  • throttleTime
    在收到新值且尚未被限制时,将启动一个新的限制间隔(在此期间不会发出任何项目)。此油门间隔的长度由您提供的持续时间决定

    在RxJS 7中,当油门间隔结束时发出尾随值时,也会启动新的油门间隔

    前导
    尾随
    指定应在节流间隔的开始还是结束时排放项目

    前导:
    在新油门间隔开始时发出一个项目

    尾随:
    在节流间隔结束时发出从源接收的最后一项

    想象 RxJS 6&7-
    尾部:false

    throttleTime(12个刻度,{前导:true,尾随:false})
    来源1:--0--1--2--3--4--5-6--7--8--9---------
    节气门时间间隔:--[~~~~~~~~~~~~~-[~~~~~~~~~~~~~~~~-[~~~~~~~~~~~~~~-----
    输出_1:--0------------------4------------------8-----------------
    来源2:--0-------1--------2--------3---4---------
    节气门间隔:--[~~~~~~~~~~~~~-[~~~~~~~~~~~~~~-[~~~~~~~~~~~~~~~~~~-
    输出_2:--0-----------------2-----------------3-------------
    
    throttleTime(12个刻度,{前导:false,尾随:false})
    来源1:--0--1--2--3--4--5-6--7--8--9---------
    节气门时间间隔:--[~~~~~~~~~~~~~-[~~~~~~~~~~~~~~~~-[~~~~~~~~~~~~~~-----
    产出1:-----------------------------------------------------------
    来源2:--0-------1--------2--------3---4---------
    节气门间隔:--[~~~~~~~~~~~~~-[~~~~~~~~~~~~~~-[~~~~~~~~~~~~~~~~~~-
    产出2:-----------------------------------------------------------
    
    RxJS 6-
    尾部:true

    throttleTime(12个刻度,{前导:true,尾随:true})
    来源1:--0--1--2--3--4--5-6--7--8--9---------
    节气门时间间隔:--[~~~~~~~~~~~~~-[~~~~~~~~~~~~~~~~-[~~~~~~~~~~~~~~-----
    输出1:--0----3----4----7----8----9-----
    来源2:--0-------1--------2--------3---4---------
    节气门间隔:--[~~~~~~~~~~~~~-[~~~~~~~~~~~~~~-[~~~~~~~~~~~~~~~~~~-
    输出2:--0-------1-------2-------3-------4-
    
    throttleTime(12个刻度,{前导:false,尾随:true})
    来源1:--0--1--2--3--4--5-6--7--8--9---------
    节气门时间间隔:--[~~~~~~~~~~~~~-[~~~~~~~~~~~~~~~~-[~~~~~~~~~~~~~~-----
    输出1:------------3------------7------------9-----
    来源2:--0-------1--------2--------3---4---------
    节气门间隔:--[~~~~~~~~~~~~~-[~~~~~~~~~~~~~~-[~~~~~~~~~~~~~~~~~~-
    输出_2:-----------1-----------------2-----------------4-
    
    RxJS 7-
    尾部:true

    throttleTime(12个刻度,{前导:true,尾随:true})
    来源1:--0--1--2--3--4--5-6--7--8--9---------
    节气门间隔:-[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~我~~~~~~~~
    输出----0----3----6----7----9--------
    来源2:--0-------1--------2--------3---4---------
    节气门间隔:--[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~我~
    输出2:--0-------1-------2-------3-------4-
    
    throttleTime(12个刻度,{前导:false,尾随:true})
    来源1:--0--1--2--3--4--5-6--7--8--9---------
    节气门间隔:-[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~我~~~~~~~~
    输出:------------3-----------------6------------7-------9--------
    来源2:--0-------1--------2--------3---4---------
    节气门间隔:--[~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~----
    输出\u 2:---------1--------------------------2------------4----
    
    当源观测值不是固定时间间隔内的序列号时,这个问题可能需要对其他场景进行更详细的解释

    官方网站上的解释是针对该场景的 {leading:true,trailing:false},这也是默认行为

    根据官方的解释

    有一个内部计时器具有两种状态:启用和禁用

    定时器启用时,没有值c
    source:              --0--1-----2--3----4--5-6---7------------8-------9--------
    throttle interval:   --[~~~~~~~~~~~x~~~~~~~~~~~x~~~~~~~~~~~x~~~~~~~~~~~x~~~~~~~
    output:              --0-----------3-----------6-----------7-----------9-------