wowok
Version:
Wowok Blockchain TypeScript API
1 lines • 727 B
JavaScript
export class SerialQueue{#queue=[];async['runTask'](a){return new Promise((b,c)=>{this.#queue['push'](()=>{a()['finally'](()=>{this.#queue['shift'](),this.#queue['length']>0x0&&this.#queue[0x0]();})['then'](b,c);}),this.#queue['length']===0x1&&this.#queue[0x0]();});}}export class ParallelQueue{#queue=[];['activeTasks']=0x0;['maxTasks'];constructor(a){this['maxTasks']=a;}['runTask'](a){return new Promise((b,c)=>{this['activeTasks']<this['maxTasks']?(this['activeTasks']++,a()['finally'](()=>{this.#queue['length']>0x0?this.#queue['shift']()():this['activeTasks']--;})['then'](b,c)):this.#queue['push'](()=>{a()['finally'](()=>{this.#queue['length']>0x0?this.#queue['shift']()():this['activeTasks']--;})['then'](b,c);});});}}