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|