@viveknayyar/re-promise
Version:
Retry failed api calls with a backoff time
3 lines (2 loc) • 740 B
JavaScript
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports):"function"==typeof define&&define.amd?define(["exports"],r):r((e=e||self).rePromise={})}(this,function(e){e.retryPromise=({fn:e,retries:r=3,retryDelay:t=0,retryOn:n,backOffFactor:i=1,debug:o=!1})=>new Promise((s,f)=>{const y=({remainingRetries:e,retryDelay:t,e:n})=>(o&&(console.group("Retry Attempt: "+(r-e+1)),console.dir({remainingRetries:e-1,retryDelay:t,error:n}),console.groupEnd()),new Promise(r=>{setTimeout(()=>r(a(e-1,t*i)),t)})),a=(r,t)=>{e().then(s).catch(e=>{if(!(r>0))return f(e);if(n){if(!n(e))return f(e);y({remainingRetries:r,retryDelay:t,e:e})}else y({remainingRetries:r,retryDelay:t,e:e})})};a(r,t)})});
//# sourceMappingURL=index.umd.js.map