Wenn ich richtig verstehe, benötigen Sie einen Operator, der Ereignisse puffert, bis für eine bestimmte Zeit kein Ereignis eintritt, und dann alle gepufferten Ereignisse wiederholt. Ich würde versuchen, diese:
Sets mit diesen neuen Betreibern zu dem beobachtbaren Prototyp:
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;
es dann als Operator verwenden:
yourSourceObservable.bufferedDebounceTime(1000).subscribe(...)