mirror of
https://github.com/finos/SymphonyElectron.git
synced 2025-02-25 18:55:29 -06:00
42 lines
824 B
JavaScript
42 lines
824 B
JavaScript
let messagesData = [];
|
|
|
|
let makeBoundTimedCollector = function(isIndexing, timeout, callback) {
|
|
let timer;
|
|
|
|
return function (...args) {
|
|
if (!timer){
|
|
timer = setTimeout(function(){
|
|
if (!isIndexing()) {
|
|
flush(getQueue());
|
|
}
|
|
}, timeout);
|
|
}
|
|
|
|
let queue = getQueue();
|
|
queue.push(args[0]);
|
|
|
|
if (!isIndexing()) {
|
|
flush(queue);
|
|
}
|
|
};
|
|
|
|
function flush(queue) {
|
|
clearTimeout(timer);
|
|
timer = null;
|
|
resetQueue();
|
|
if (queue) {
|
|
callback(JSON.stringify(queue));
|
|
}
|
|
}
|
|
|
|
function getQueue(){
|
|
return messagesData;
|
|
}
|
|
|
|
function resetQueue(){
|
|
messagesData = [];
|
|
}
|
|
};
|
|
|
|
module.exports = makeBoundTimedCollector;
|