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