UNPKG

@lifaon/rx-js-light

Version:

Blazing fast Observables

18 lines (17 loc) 487 B
export function bufferObservable(subscribe, closingObservable) { return emit => { let currentBuffer = []; const unsubscribeOfClosingObservable = closingObservable(() => { const buffer = currentBuffer; currentBuffer = []; emit(buffer); }); const unsubscribeOfSourceObservable = subscribe(value => { currentBuffer.push(value); }); return () => { unsubscribeOfClosingObservable(); unsubscribeOfSourceObservable(); }; }; }