JSPM

promise-retryer

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

provides an easy way to make promises retry based on exceptions or result validation

Package Exports

  • promise-retryer

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 (promise-retryer) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

promise-retryer Build Status

provides an easy way to make promises retry based on exceptions or result validation

install

npm install promise-retryer

params

  • delay (can be a number or function that returns a number, if its a function it gets called with an attempt argument)
  • maxRetries (the maximum amount of retries)
  • validate (validation promise)
  • onError (callback function on errors, gets called with an error object and an attempt argument)
  • onAttempt (callback function on attempts, gets called with an attempt argument)
  • debug (enable verbose logging)
  • name (this is useful for debugging purposes)

examples

heres a basic retry example

var PromiseRetryer = require('promise-retryer')(Promise);

PromiseRetryer.run({
    delay: 1000,
    maxRetries: 5,
    promise: function (attempt) {
        return makeAsyncRequest(); // returns a promise
    }
}).then(
    function (response) {
        console.log(response);
    },
    function (error) {
        console.log(error);
    }
);

and heres a little more advanced example with validation and custom delays

var PromiseRetryer = require('promise-retryer')(Promise);

PromiseRetryer.run({
    delay: function (attempt) {
        return attempt * 1000;
    },
    maxRetries: 5,
    promise: function (attempt) {
        return makeAsyncRequest(); // returns a promise
    },
    validate: function (response, attempt) {
        return new Promise(function (resolve, reject) {
            if (typeof response === 'object') {
                resolve(response);
            } else {
                reject(new Error('response was not an object'));
            }
        });
    }
}).then(
    function (response) {
        console.log(response);
    },
    function (error) {
        console.log(error);
    }
);