easy-timeout

Simple replacement for setTimeout and setInterval

Usage no npm install needed!

<script type="module">
  import easyTimeout from 'https://cdn.skypack.dev/easy-timeout';
</script>

README

easy-timeout

npm version

Simple replacement for setTimeout and setInterval

Installation

$ npm install --save easy-timeout

Usage

var timeout = require('easy-timeout').Timeout;
timeout('1m .5s')           
.then(function(){           //this will be called on timeout
    console.log('hello');
}).then(function(){         //it is chainable
    console.log('hello2');
}).perform(function(){   //it is the same to call it with other
    console.log('perform'); //action verbs such as: perform, fulfil, do, execute...
}).fulfil(function(){
    console.log('fulfil');
});

var interval = require('easy-timeout').Interval;
interval(5, 0)
.execute(function(){           //this will be called on interval
    console.log('hello');
}).perform(function(){         //it is chainable
    console.log('hello2');
});

interval.count({ min: 5, s: 0})
.execute(function(){           //this will keep on calling on interval
    console.log('hello');
}).perform(5, function(){      //but this will only be called 5 times
    console.log('hello2');
});

As you might see in the usage that the argument passed in to timeout(), interval() and interval.count() can be very flexible, anything that you feel is logical.

//it can be a string
timeout('1m 30s') //1 minute 30 second
timeout('1minute 30s') //1 minute 30 second
timeout('1 min 30 sec') //1 minute 30 second
timeout('1.5 min') //1 minute 30 second

//it can be an object
timeout({minute: 1, second: 30})
timeout({min: 1, seconds: 30})
timeout({m: 1, s: 30})

//it can be a list of numbers
timeout(90000) // timeout(ms)
timeout(90, 0) // timeout(s, ms)
timeout(1, 30, 0) // timeout(m, s, ms)
timeout(0, 1, 30, 0) // timeout(h, m, s, ms)
timeout(0, 0, 1, 30, 0) // timeout(d, h, m, s, ms)
timeout(0, 0, 0, 1, 30, 0) // timeout(y, d, h, m, s, ms)

Related

easy-ms

License

MIT