1.0.2 • Published 8 years ago
attempt-man v1.0.2
attempt-man
Beautifully manage attempts for your process!
Requirements
- Node.js >= 6.0.0
Installation
Install via npm:
npm install attempt-man
Usage
Create Attempt
If an exception is thrown in the callback function, it will keep start a new attempt within the allowed range.
Create and run an attempt and allow the attempts up to 5
times:
const Attempter = require('attempt-man').Attempter;
var counter = 0;
new Attempter(5).run(() => {
if (++counter <= 2) throw new Error();
return 'Hello World! Counter: ' + counter;
}).then(result => {
console.log(result);
});
// => 'Hello World! Counter: 3';
Here we see that the function was successfully executed at the third time.
Note: The
Attempter.run()
method is returns a Promise. The attempts will not be continued when there was no exception throws in the last attempt.
Catch Errors
When all attempts fail, it will throws an AttemptsFailedError
. Since the run
method
is giving you a Promise, so you can catch it by the catch
method.
var AttemptsFailedError = require('attempt-man').AttemptsFailedError;
new Attempter().run(() => {
throw new Error('foo');
}).catch(err => {
console.log('Totally tried: ' + err.attempts.length);
console.log('Last error: ' + err.getLastError().message);
});
// => Totally tried: 5
// => Last error: foo
Get the attempt state object.
You can get the AttemptState
object by access the attempts
array of the AttemptsFailedError
.
err.attempts[1].error; // The first one.
err.attempts[2].error; // The second one.
err.attempts[3].error; // The third one.
// ...