Network Printer Manager

    timer

    1.0.1 • Public • Published

    this package provides a utility function to promisify and unify setTimeout and setInterval functions.

    It also provides a comfortable way to chain multiple setTimeouts with different timeouts and even a finally setInterval with the same callback.

    An additional feature is the auto interval function which applies a simple setInterval which triggers at event time slots, ie if you call the timer.auto function with an interval of 15601000 (15 minutes) your callback will be triggered at 00:15:00, 00:30:00, and so on.

    USAGE EXAMPLE (JAVASCRIPT):

    // as a promise in order to delay execution
    await timer(300);
    
    // use timer with Promise.race to define timeouts:
    // timer.timeout will reject the promise after the given timeout
    Promise.race( [otherPromise, timer.timeout(400)] );
    
    
    // simple setTimeout
    // same as setTimeout( cb, 200);
    timer(200, cb);
    
    
    // setTimeout with same callback after 200ms and after 400ms
    // the second array element is also 200ms because it is set up after the first one (200ms+200ms = 400ms)
    timer( [200,200], cb );
    // same as 
    // setTimeout( 200, cb );
    // setTimeout( 400, cb );
    
    // simple setInterval
    timer.interval(2000,cb);
    // same as setInterval(cb,2000);
    
    // setting up a interval after a timeout
    timer(500,2000,cb);
    // this one will trigger cb after:
    //  500ms, 2500ms, 4500ms, 6500ms, ...
    
    
    // auto slot a interval (for example if you want your callback to be triggered at 00:15:00, 00:30:00, ..)
    timer.auto(15*60*1000, cb);
    
    
    
    
    // clearing a timeout:
    o = timer(500,cb);
    o.clear();
    
    // if you use the clear() function on a timer with multiple timeouts or intevals, ALL of them will be cleared,
    // so your callback won't be triggered any more
    

    USAGE EXAMPLE (COFFEESCRIPT):

    # with coffeescript the utility functions are even more handy
    
    timer 200, -> console.log 'hello'
    
    timer [500,200], -> console.log 'hello after 500ms and 700ms'
    
    # BONG every 30min at even time slots (0:00, 0:30, ..)
    {clear} = timer.auto 30*60*1000, -> console.log 'BONG'
    # end the BONG interval after 5h
    timer 5*60*60*1000, clear
    

    QUESTIONS or feedback? you are welcome, send me an email at sieber.m@gmail.com

    Install

    npm i timer

    DownloadsWeekly Downloads

    104

    Version

    1.0.1

    License

    ISC

    Unpacked Size

    16.6 kB

    Total Files

    11

    Last publish

    Collaborators

    • markussieber