48 lines
991 B
JavaScript
48 lines
991 B
JavaScript
define('queue', function(){
|
|
|
|
var exports = {};
|
|
|
|
queue = [];
|
|
|
|
exports.add_function_delayed = function(d,callback,data) {
|
|
|
|
queue.push(
|
|
{
|
|
func:
|
|
function(){
|
|
var finished = callback();
|
|
},
|
|
pushed:Date.now(),
|
|
delay:d,
|
|
data:data
|
|
}
|
|
);
|
|
|
|
}
|
|
|
|
exports.get = function() {
|
|
return queue;
|
|
}
|
|
|
|
exports.run = function(){
|
|
|
|
for(var i=0;i<queue.length;i++){
|
|
var current = queue[i];
|
|
if (Date.now() - current.pushed > current.delay) {
|
|
current.func();
|
|
queue.splice(i,1);
|
|
}
|
|
}
|
|
if(!queue.length) return;
|
|
|
|
// Waste a ms to prevent callstack overflow
|
|
lrt_inner = Date.now();
|
|
while (Date.now() - lrt_inner < 1) { var a=1+1; };
|
|
|
|
exports.run();
|
|
|
|
}
|
|
|
|
return exports;
|
|
|
|
}); |