1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- 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)();
- }
- }
|