Neoclassical Philosophic Musings

    vcmrefunc

    1.0.1 • Public • Published

    npm package

    version build language download dependents issue last_commit license

    The right way to repeat a process

    This module helps you to repeat a process again after it completely executed. You can specify a condition to stop the repetition immediately by giving a command repeat(false) inside the repeat_function. Also, there is an option to pass a callback that will be executed after the repetition is finished.

    This is simple, easy to use, and clean code.

    Installation

    NPM

    npm install vcmrefunc --save

    Browser

    // Bower
    bower install vcmrefunc --save

    Initialization

    NPM

    const vcmrefunc = require('vcmrefunc');

    Browser

    // Bower
    <script src="bower_components/vcmrefunc/dist/vcmrefunc.min.js"></script>

    Quickstart

    vcmrefunc(delay, repeat_function, callback[optional]);
    • Arguments
      • number delay
        • default 0 | miliseconds | 0 = means has no delay
      • function repeat_function
        • Has an argument repeat
          • function repeat [required]
      • function callback [optional]

    Here is the basic usage of vcmrefunc:

    vcmrefunc(0, (repeat) => {
      // Your logic here...
     
      repeat();
    });

    As you can see, the argument repeat on the repeat_function is used to repeat its process again until you decide to stop it. You can stop the repetition using repeat(false). For example:

    var i = 0;
     
    vcmrefunc(0, (repeat) => {
      console.log('Repeated ' + i);
      
      if (== 4) return repeat(false);
      
      i++;
     
      repeat();
    });

    And you'll have output:

    Repeated 0
    Repeated 1
    Repeated 2
    Repeated 3
    Repeated 4

    Also, there is an option to pass a callback that will be executed after the repetition is finished. For example:

    var i = 0;
     
    vcmrefunc(0, (repeat) => {
      console.log('Repeated ' + i);
      
      if (== 4) return repeat(false);
      
      i++;
     
      repeat();
    }, () => {
      console.log('End');
    });

    And the output will be:

    Repeated 0
    Repeated 1
    Repeated 2
    Repeated 3
    Repeated 4
    End

    Delay

    If the repeat_function process would be repeated, the function will wait for a delay before it gets the process run again. Delay must be passed (in miliseconds) on first position of vcmrefunc arguments. Zero (0) delay means has no delay. Example:

    vcmrefunc(2000, (repeat) => {
      console.log('Repeated after 2 seconds');
      repeat();
    });

    Working with asynchronous functions

    You can do like this if you want to run asynchronous functions inside repeat_function:

    var myFunction = function (callback) {
      setTimeout(() => {
        console.log('This is my asynchronous function');
        callback();
      }, 2000);
    };
     
    var i = 0;
     
    vcmrefunc(2000, (repeat) => {
      console.log('Repeated ' + i);
      
      myFunction(() => {
        if (== 4) return repeat(false);
     
        i++;
     
        repeat();
      });
    }, () => {
      console.log('end!');
    });

    Output:

    Repeated 0
    This is my asynchronous function
    Repeated 1
    This is my asynchronous function
    Repeated 2
    This is my asynchronous function
    Repeated 3
    This is my asynchronous function
    Repeated 4
    This is my asynchronous function
    End

    Release

    Changelog

    See https://github.com/dalikewara/vcmrefunc/blob/master/CHANGELOG.md.

    Credits

    Copyright © 2020 Dali Kewara.

    License

    MIT License

    Install

    npm i vcmrefunc

    DownloadsWeekly Downloads

    1

    Version

    1.0.1

    License

    MIT

    Unpacked Size

    12.3 kB

    Total Files

    12

    Last publish

    Collaborators

    • dalikewara