Timeout Queue Task
by dzenkovich
JavaScript
var throttle = function(callback, delay){
var queue = [];
return function(){
if(queue.length == 0){
var execute = true;
}
if(queue.length < 2){
queue.push(function(){
callback();
window.setTimeout(function(){
queue.shift();
if(queue.length){
queue[0]();
}
}, delay);
});
}
if(execute){
queue[0]();
}
};
};
var start = Date.now();
var throttled = throttle(function(){
console.log(Date.now() - start);
}, 1000);
throttled();
window.setTimeout(throttled, 100);
window.setTimeout(throttled, 200);
window.setTimeout(throttled, 300);
window.setTimeout(throttled, 1500);