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

Rxjs 在一定时间内等待新值的运算符,rxjs,observable,rxjs6,Rxjs,Observable,Rxjs6,我正在寻找可观察的操作符,它在发出值后将等待500毫秒。 如果在这段时间内发出了新值,则会采用新值并最后忘记。 如果没有发出新值,则会进一步传递该值 我试过: 延迟-它只延迟每个值 debounceTime-它会在值之间创建间隙并发出每个值。您可以尝试使用throttleTime(500)和last()运算符。 比如说, interval(100) .pipe( take(10), throttleTime(500), last(), ) .subscribe({ next: x

我正在寻找
可观察的
操作符,它在发出值后将等待500毫秒。
如果在这段时间内发出了新值,则会采用新值并最后忘记。
如果没有发出新值,则会进一步传递该值

我试过:
延迟
-它只延迟每个值
debounceTime
-它会在值之间创建间隙并发出每个值。

您可以尝试使用throttleTime(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->complete。

看看
去BounceTime

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

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


您可以查看
auditTime
auditTime
听起来像您需要的,但这取决于您是否希望在源观测值的每个值之后延迟延迟。它认为当
auditTime
收到一个值时,它将在
500ms
后发出,并且不会为源的后续发射创建新的计时器。你:“它会在值之间创建间隙并发射每个值。”文档:“可能会降低一些值”你是如何得出结论的?@abetteroliver你说得对。问题出在别的地方。
                 -1---2-3-4----5-6|
debounceTime(--) ----1-------4---6|