retrying-promise v0.0.4
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-promiseImport 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 mochaRun tests:
npm testAPI 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