Convenience function to retry executing an action, until a desired result is achieved
npm i @parzh/retryable
yarn add @parzh/retryable
constcontent=awaitretryable((resolve,reject,retry)=>{fs.readfile("/path/to/file",(err,data)=>{if(!err)// no errors occuredreturnresolve(data);// here: an error occuredif(retry.count>=RETRY_LIMIT)if(SHOULD_IGNORE_RETRY_LIMIT)// retry limit reached, but ignoredretry.setCount(0);else// retry limit reachedreturnreject("Retry limit reached!");// here: retry limit is ignored or not reachedif(SHOULD_RETRY_IMMEDIATELY)// retrying immediatelyretry();else// retrying after exponential backoff (see https://en.wikipedia.org/wiki/Exponential_backoff)retry.after("exponential");// same as: retry.after(2 ** retry.count * 100);});});