@pawanmkr/fucron
Version:
2 lines (1 loc) • 460 B
JavaScript
var n=class{constructor(){this.tracker=new Map}schedule(e,r){return new Promise((s,i)=>{try{let t=setTimeout(async()=>{try{await e(),s(t)}catch(c){i(c)}finally{this.tracker.delete(t)}},r);this.tracker.set(t,r),s(t)}catch(t){i(t)}})}unschedule(e){let r=this.tracker.get(e);r?(clearTimeout(r),this.tracker.delete(e)):console.info(`timeout with ${e} does not exists`)}pending(){return this.tracker.size}onExhausted(e){return e()}},u=new n;export{u as scheduler};