Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

retrying-promise

wouter-vdb260.0.4

Create fault tolerant promises that retry upon failure according to a retry strategy.

promise, retry strategy, fault tolerant, ECMAScript 2015, es6, js, javascript, node, node.js

readme

retrying-promise

Create fault tolerant promises that retry upon failure according to a retry strategy.

The implementation of the retry strategies reuses code from the node-retry project.

Usage

Install retrying-promise:

npm install retrying-promise

Import retrying-promise:

const retryPromise = require('retrying-promise');

The constant retryPromise is a function that returns a promise. Use this function similar to how you call the new Promise() constructor, but pass it a function that takes three instead of two functions as arguments: resolve, retry and reject.

var promise = retryPromise(function (resolve, retry, reject) {

    resolve(result);  // the promise resolves normally

    retry(error);     // the promise failed and a retry may be attempted

    reject(error);    // the promise failed and no retry should be attempted

});

Call the resolve function when the promise resolves normally.

Call the retry function when the promise failed and a retry may be attempted.

Call the reject function when the promise failed and no retry should be attempted.

Test

Install Mocha.

sudo npm install -g mocha

Run tests:

npm test

API Reference

Author: Wouter Van den Broeck
Copyright: 2016

module.exports([options], executor) ⇒ Promise

Returns a promise that conditionally tries to resolve multiple times, as specified by the retry policy.

Kind: Exported function

Param Type Description
[options] retryPolicy Either An object that specifies the retry policy.
executor retryExecutor A function that is called for each attempt to resolve the promise.

module.exports~createTimeout(attempt, opts) ⇒ number

Get a timeout value in milliseconds.

Kind: inner method of module.exports
Returns: number - The timeout value in milliseconds.

Param Type Description
attempt number The attempt count.
opts Object The options.

module.exports~retryPolicy : Object

An object that specifies the retry policy.

Kind: inner typedef of module.exports
Properties

Name Type Default Description
retries number 10 The maximum amount of times to retry the operation.
factor number 2 The exponential factor to use.
minTimeout number 1000 The number of milliseconds before starting the first retry.
maxTimeout number Infinity The maximum number of milliseconds between two retries.
randomize boolean false Randomizes the timeouts by multiplying with a factor between 1 to 2.

module.exports~retryExecutor : function

The function that is called for each attempt to resolve the promise.

Kind: inner typedef of module.exports

Param Type Description
resolveFn function To be called when the promise resolves normally.
retryFn function To be called when the promise failed and a retry may be attempted.
[rejectFn] function To be called when the promise failed and no retry should be attempted.

© 2016, Wouter Van den Broeck