SymphonyElectron/js/search/queue.js
Keerthi Niranjan 63b2fe25bd SEARCH-538
- Review comments
2018-01-08 17:38:58 +05:30

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;