Nanobots Producing Megastructures

    retry-if-fails

    1.0.1 • Public • Published

    Current Version NPM Minified size Github Code Size Downloads/Year Issues License Contributors

    NPM

    Retry-If-Fails

    This module helps to you to manage retries of function execution

    Usage

    // 1. Import module 
    const retrier = require('retry-if-fails');
    
    // 2. Define your function
    const flipCoin = () => {
      return Math.random() > 0.5 ? 'Heads' : 'Tails';
    }
    
    // 3. Define your test function
    const resultChecker = coinFlip => {
      console.log(coinFlip);
      return coinFlip === 'Heads'
    }
    
    // 4. Run the Retrier
    const retries = 3;
    retrier(flipCoin, resultChecker, retries)
    .then( result => console.log(`Finally! ${result}`))
    .catch( lastResult => console.log(`Error: Last result was: ${lastResult}`));
    
    

    The retrier function returns a Promise, and it will execute until it hits the desired result or it' will return the last failed result.

    Wait between tries

    You can also set a wait time between tries with the optional last parameter. This can be useful when your functions consume a remote resource.

    const retries = 3;
    const wait = 200; // 200 milliseconds
    retrier(flipCoin, resultChecker, retries, wait);
    

    Example fetching remote API

    const retrier = require('retry-if-fails');
    const fetch = require('node-fetch');
    
    const fetchResource = () => {
      return fetch('http://domain.com/resource/12345', { timeout: 3000 })
        .catch(err => console.log(err));
    }
    
    const resultChecker = response => {
      return response && response.status == 200;
    }
    
    const retries = 3;
    const wait = 1000;
    retrier(fetchResource, resultChecker, retries, wait)
      .then( res => res.json())
      .then( object => console.log(object))
      .catch( lastResponse => console.log(`It fails. Last result was: ${lastResponse}`));
    
    
    

    Using async await to get result

    const foo = async () =>{
      try{
        const result = await retrier(process, checkCorrect, retries, wait);
        console.log(`It's correct! ${result}`);
      }
      catch(lastResult){
        console.log(console.log(`It fails. Last result was: ${lastResult}`))
      }
    };
    

    Install

    npm i retry-if-fails

    DownloadsWeekly Downloads

    1

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    4.64 kB

    Total Files

    4

    Last publish

    Collaborators

    • wjsc