在一定时间内等待新值的运算符

时间:2018-07-26 10:58:57

标签: rxjs observable rxjs6

我正在寻找observable运算符,该运算符在发出值后将等待500ms。 如果在这段时间内发出新值,它将采用新值并忘记最后一个值。 如果没有新值发出,它将进一步传递该值。

我尝试过: delay-它只会延迟每个debounceTime-它会在值之间造成差距并发出每个值。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用crunchTime(500)和last()运算符。 例如,

interval(100)
.pipe(
  take(10),
  throttleTime(500),
  last(),
)
.subscribe({
  next: x => console.log('x', x),
  error: error => console.log('error', error),
  complete: () => console.log('complete'),
});

结果,您得到6->完成。

答案 1 :(得分:0)

看看debounceTime

  

debounceTime(dueTime:数字,调度程序:Scheduler):可观察

     

丢弃发射时间间隔小于指定时间的值   输出

                 -1---2-3-4----5-6|
debounceTime(--) ----1-------4---6|