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.
39 lines
736 B
39 lines
736 B
class Stack{ |
|
constructor(){ |
|
this.stack=[]; |
|
this.autoRun=true; |
|
this.running=false; |
|
this.stop=false; |
|
} |
|
|
|
clear(){ |
|
this.stack=[]; |
|
return this.stack; |
|
} |
|
|
|
contents(val){ |
|
if(val){ |
|
this.stack=val; |
|
} |
|
return this.stack; |
|
} |
|
|
|
add(...callbacks){ |
|
this.stack.push(...callbacks); |
|
if(!this.running && !this.stop && this.autoRun){ |
|
this.next(); |
|
} |
|
} |
|
|
|
next(){ |
|
this.running=true; |
|
if(this.stack.length<1 || this.stop){ |
|
this.running=false; |
|
return; |
|
} |
|
|
|
this.stack.pop().bind(this)(); |
|
} |
|
} |
|
|
|
module.exports=Stack;
|
|
|