| 12345678910111213141516171819202122232425262728293031323334353637383940 | 
							- var retry = require('../lib/retry');
 
- function attemptAsyncOperation(someInput, cb) {
 
-   var opts = {
 
-     retries: 2,
 
-     factor: 2,
 
-     minTimeout: 1 * 1000,
 
-     maxTimeout: 2 * 1000,
 
-     randomize: true
 
-   };
 
-   var operation = retry.operation(opts);
 
-   operation.attempt(function(currentAttempt) {
 
-     failingAsyncOperation(someInput, function(err, result) {
 
-       if (err && err.message === 'A fatal error') {
 
-         operation.stop();
 
-         return cb(err);
 
-       }
 
-       if (operation.retry(err)) {
 
-         return;
 
-       }
 
-       cb(operation.mainError(), operation.errors(), result);
 
-     });
 
-   });
 
- }
 
- attemptAsyncOperation('test input', function(err, errors, result) {
 
-   console.warn('err:');
 
-   console.log(err);
 
-   console.warn('result:');
 
-   console.log(result);
 
- });
 
- function failingAsyncOperation(input, cb) {
 
-   return setImmediate(cb.bind(null, new Error('A fatal error')));
 
- }
 
 
  |