🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

oh-no-i-insist

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

oh-no-i-insist

flexible retry for JavaScript promises

latest
Source
npmnpm
Version
1.1.1
Version published
Weekly downloads
3.5K
-25.28%
Maintainers
1
Weekly downloads
 
Created
Source

Oh, no, I insist

Build Status

Flexible retry for JavaScript promises. Supports native Promises and 3rd party A+ Promise libraries.

Installation

Install using NPM

npm install oh-no-i-insist -S

NPM

Usage

 retry(promiseGenerator, delay, maxTimes, predicate, onRetry, PromiseImplementation)
  • promiseGenerator: function that should return a Promise you want to retry. Will be invoked once per each try.
  • delay: int number of milliseconds between retries
  • maxTimes: int the number of times to retry
  • predicate: function (error) optional a function executed to check if the error is retriable. It will receive the error/rejection reason, and should return true if it is retriable. Return false to break the retry chain.
  • onRetry: function optional a function that will be executed before waiting for each retry, but not before the first try. Use this to clean up resources, tell the user that you're waiting for a retry and things like that
  • PromiseImplementation: class optional if working with an older Node.js implementation, the 3rd party Promise implementation that you want to use. If working with a more recent Node.js version and you want to use the native Promise, don't supply this argumenrt

Example

var retry = require('oh-no-i-insist'),
  generator = function() { 
    return new Promise(function (resolve, reject) { 
      var x = Math.random();
      if (x < 0.3) { 
        resolve(x);
      } else {
        reject(x);
      } 
    }); 
  }, shouldRetry = function (number) {
    console.log('got wrong', number);
    return number > 0.6;
  }, onRetry = function () {
    console.log('waiting for retry');
  };

retry(generator, 100, 5, shouldRetry, onRetry).then(function (num) {
  console.log('generated', num);
}, function (err) {
  console.log('failed with', err);
});

License

MIT

Keywords

promise

FAQs

Package last updated on 15 Nov 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts