@lifaon/rx-js-light
Version:
Blazing fast Observables
31 lines (30 loc) • 877 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.bufferTimeObservable = void 0;
var create_timeout_1 = require("../../../../../../../../misc/timer/create-timeout.cjs");
function bufferTimeObservable(subscribe, duration) {
return function (emit) {
var currentBuffer = [];
var abortTimeout = null;
var unsubscribe = subscribe(function (value) {
currentBuffer.push(value);
if (abortTimeout === null) {
abortTimeout = (0, create_timeout_1.createTimeout)(function () {
abortTimeout = null;
var buffer = currentBuffer;
currentBuffer = [];
emit(buffer);
}, duration);
}
});
return function () {
unsubscribe();
if (abortTimeout !== null) {
abortTimeout();
}
};
};
}
exports.bufferTimeObservable = bufferTimeObservable;