gpt4 book ai didi

angular - RxJS:debounceTime 返回所有值

转载 作者:太空狗 更新时间:2023-10-29 17:35:50 24 4
gpt4 key购买 nike

如果没有其他事件发生,是否可以延迟运行序列,并立即返回所有值?

我需要某种debounceTime 函数,但它会返回所有值。

最佳答案

如果我理解正确,您需要一个运算符来缓冲事件,直到在一段时间内没有事件发生,然后重复所有缓冲的事件。我会试试这个:

将这个新运算符设置为 Observable 原型(prototype):

function bufferedDebounceTime(time) {
return Observable.create(subscriber => {
let buffer = [];
return this.do(x => buffer.push(x))
.debounceTime(time)
.flatMap(() => buffer)
.do(() => buffer = [])
.subscribe(
value => subscriber.next(value),
err => subscriber.error(err),
() => subscriber.complete()
);
});
}

Observable.prototype.bufferedDebounceTime = bufferedDebounceTime;

然后将其用作运算符:

yourSourceObservable.bufferedDebounceTime(1000).subscribe(...)

关于angular - RxJS:debounceTime 返回所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43351286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com