Javascript throttleTime操作符';s配置参数是否工作?(节流图)
我已经读过了,但是我没有完全理解接线员 我知道节流时间(1000)是如何工作的。事件到达后,它将跳过所有后续事件1秒,然后再次启动此过程 我很难理解的是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
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-------