RxJS: debounceTime returns all values

Is it possible to start the sequence with a delay if other events do not appear, and immediately return all the values?

I need some kind of debounceTime func, but that will return all the values.

+5
source share
1 answer

If I understand correctly, you need an operator that buffers events until an event occurs for a certain period of time, and then repeats all buffered events. I would try this:

Install this new statement in the 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; 

Then use it as an operator:

 yourSourceObservable.bufferedDebounceTime(1000).subscribe(...) 
+4
source

Source: https://habr.com/ru/post/1266598/


All Articles