Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rx去BounceTime不起作用_Javascript_Rxjs - Fatal编程技术网

Javascript Rx去BounceTime不起作用

Javascript Rx去BounceTime不起作用,javascript,rxjs,Javascript,Rxjs,遵循rxjs文档和不同的指南页面并不能解决我的问题,即debounceTime不起作用 function getValue() { return new rxjs.Observable(sub => { let counter = 0; setInterval(() => { counter++; sub.next(counter); }, 100); }); } // Removing debounceTime works

遵循rxjs文档和不同的指南页面并不能解决我的问题,即
debounceTime
不起作用

function getValue() {
  return new rxjs.Observable(sub => {
    let counter = 0;
    setInterval(() => {
      counter++;
      sub.next(counter);
    }, 100);
  });
}


// Removing debounceTime works or set it to a value < 100.
getValue().pipe(rxjs.operators.debounceTime(1000)).subscribe(data => {
  console.log(data);
});
函数getValue(){
返回新的rxjs.Observable(sub=>{
设计数器=0;
设置间隔(()=>{
计数器++;
副秘书长(柜台);
}, 100);
});
}
//删除去BounceTime有效或将其设置为小于100的值。
getValue().pipe(rxjs.operators.debounceTime(1000)).subscribe(数据=>{
控制台日志(数据);
});


我希望该值每秒钟出现一次,而不是每100毫秒出现一次。

去BounceTime

签名:debounceTime(dueTime:number,scheduler:scheduler): 可观察

放弃所用时间少于指定时间的发射值 输出

所有发射的项目的间距小于1000毫秒,因此它们将被丢弃

注意:默认情况下,第一项不会直接发出

如果您只想获取最后一个操作
auditTime
,则您要搜索的运算符是

审核时间

忽略
持续时间
毫秒的源值,然后发出
源观测值的最新值,然后重复此操作
过程

如果要对1000毫秒内接收到的所有元素进行特定处理,可以使用bufferTime

缓冲时间

签名:bufferTime(bufferTimeSpan:number, bufferCreationInterval:number,scheduler:scheduler):可观察 收集发出的值,直到提供的时间过去,以数组形式发出


去BounceTime

签名:debounceTime(dueTime:number,scheduler:scheduler): 可观察

放弃所用时间少于指定时间的发射值 输出

所有发射的项目的间距小于1000毫秒,因此它们将被丢弃

注意:默认情况下,第一项不会直接发出

如果您只想获取最后一个操作
auditTime
,则您要搜索的运算符是

审核时间

忽略
持续时间
毫秒的源值,然后发出
源观测值的最新值,然后重复此操作
过程

如果要对1000毫秒内接收到的所有元素进行特定处理,可以使用bufferTime

缓冲时间

签名:bufferTime(bufferTimeSpan:number, bufferCreationInterval:number,scheduler:scheduler):可观察 收集发出的值,直到提供的时间过去,以数组形式发出


谢谢我想要每1000毫秒的最后一个值。不是所有值都在1000毫秒内。不是缓冲时间。e、 g.
1,2,3,4,5,6
(均为100ms)至
10,20,30
(均为1秒)。“是”谢谢。没有一个运营商的官方方式吗?在我看来,debounce应该是“debounce”。在时间内丢弃多个信号,但发出最后一个值。ok
auditTime
的工作方式更符合预期(对我而言)
debounceTime
:D谢谢。迟来的评论,但我再次面临rxj的时间操作,我找到了另一个解决方案
throttleTime
。它类似于
auditTime
,但会发出第一个值。此外,
sampleTime
对于此类情况也很有用。也许是第一个解决办法。别忘了用一个值初始化主题。一些操作员要求它在第一次接收时触发。在我的例子中,
sampleTime
非常有助于“消除”(控制刷新)传入数据。我希望我能帮忙。谢谢。我想要每1000毫秒的最后一个值。不是所有值都在1000毫秒内。不是缓冲时间。e、 g.
1,2,3,4,5,6
(均为100ms)至
10,20,30
(均为1秒)。“是”谢谢。没有一个运营商的官方方式吗?在我看来,debounce应该是“debounce”。在时间内丢弃多个信号,但发出最后一个值。ok
auditTime
的工作方式更符合预期(对我而言)
debounceTime
:D谢谢。迟来的评论,但我再次面临rxj的时间操作,我找到了另一个解决方案
throttleTime
。它类似于
auditTime
,但会发出第一个值。此外,
sampleTime
对于此类情况也很有用。也许是第一个解决办法。别忘了用一个值初始化主题。一些操作员要求它在第一次接收时触发。在我的例子中,
sampleTime
非常有助于“消除”(控制刷新)传入数据。我希望我能帮忙。
function getValue() {
  return rxjs.interval(100);
}


// keep the last element after 1000ms 
getValue().pipe(rxjs.operators.auditTime(1000)).subscribe(data => {
  console.log(data);
});
function getValue() {
  return rxjs.interval(100);
}

getValue().pipe(
  rxjs.operators.bufferTime(1000), 
  rxjs.operators.map(itemsList => Math.max(itemsList))
)
.subscribe(data => {
  console.log(data);
});