You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
function Queue(){ Object.defineProperties( this, { add:{ enumerable:true, writable:false, value:addToQueue }, next:{ enumerable:true, writable:false, value:run }, clear:{ enumerable:true, writable:false, value:clearQueue }, contents:{ enumerable:false, get:getQueue, set:setQueue }, autoRun:{ enumerable:true, writable:true, value:true }, stop:{ enumerable:true, writable:true, value:false } } );
var queue=[]; var running=false; var stop=false; function clearQueue(){ queue=[]; return queue; } function getQueue(){ return queue; } function setQueue(val){ queue=val; return queue; }
function addToQueue(){ for(var i in arguments){ queue.push(arguments[i]); } if(!running && !this.stop && this.autoRun){ this.next(); } }
function run(){ running=true; if(queue.length<1 || this.stop){ running=false; return; }
queue.shift().bind(this)(); } }
|