retrying-promise
v0.0.4
Published
Create fault tolerant promises that retry upon failure according to a retry strategy.
Downloads
29
Maintainers
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