JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 23
  • Score
    100M100P100Q50440F
  • License MIT

Convenience function to retry an action

Package Exports

  • @parzh/retryable

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@parzh/retryable) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@parzh/retryable

Convenience function to retry executing an action, until a desired result is achieved

Installation

npm i @parzh/retryable
yarn add @parzh/retryable

Usage

const content = await retryable((resolve, reject, retry) => {
  fs.readfile("/path/to/file", (err, data) => {
    if (!err)
      // no errors occured
      return resolve(data);

    // here: an error occured

    if (retry.count >= RETRY_LIMIT)
      if (SHOULD_IGNORE_RETRY_LIMIT)
        // retry limit reached, but ignored
        retry.setCount(0);

      else
        // retry limit reached
        return reject("Retry limit reached!");

    // here: retry limit is ignored or not reached

    if (SHOULD_RETRY_IMMEDIATELY)
      // retrying immediately
      retry();

    else
      // retrying after exponential backoff (see https://en.wikipedia.org/wiki/Exponential_backoff)
      retry.after("exponential"); // same as: retry.after(2 ** retry.count * 100);
  });
});