backoff-promise

1.0.0 • Public • Published

backoff-promise

Greenkeeper badge Circle CI

An exponential backoff for promises

Example 1

var i = 0,
  Backoff = require('backoff-promise'),
  backoff = new Backoff();
 
var myPromise = function () {
  return new Promise(function (resolve, reject) {
    if (i++ < 5) {
      reject(new Error('transient-error'));
    } else {
      resolve('foo');
    }
  });
};
 
return backoff.run(function () {
  return myPromise();
});

Example 2: Different types of errors

var i = 0,
  Backoff = require('backoff-promise'),
  backoff = new Backoff();
 
var myPromise = function () {
  return new Promise(function (resolve, reject) {
    if (i++ < 3) {
      reject(new Error('transient-error'));
    } else {
      reject(new Error('permanent-error'));
    }
  });
};
 
var shouldRetry = function (err) {
  // Permanent error? If so, then stop retrying
  if (err.message === 'permanent-error') {
    throw err;
  }
};
 
return backoff.run(function () {
  return myPromise();
}, shouldRetry).catch(function (err) {
  // err.message = 'transient-error'
});

API

var backoff = Backoff(startingRetryAfterMSecs, maxRetryAfterMSecs, backoffFactor, maxRetries)

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.0
    249
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.0
    249
  • 0.0.3
    121
  • 0.0.2
    0
  • 0.0.1
    0

Package Sidebar

Install

npm i backoff-promise

Weekly Downloads

296

Version

1.0.0

License

MIT

Unpacked Size

15.3 kB

Total Files

13

Last publish

Collaborators

  • redgeoff