1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| 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;
|
|