1.0.2 • Published 8 years ago

attempt-man v1.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

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.

// ...