1.0.2 • Published 9 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-manUsage
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: fooGet 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.
// ...