0.2.4 • Published 3 years ago

setinterval v0.2.4

Weekly downloads
718
License
-
Repository
github
Last release
3 years ago

setinterval

NPM version npm download

We all know the drawbacks of the built-in setInterval in Node.js(actually js itself).

It's more reasonable to start measuring period after every async task gets done. So here it is.

Install

$ npm i setinterval

Example

  const Timer = require('setinterval');
  const t = new Timer(async () => {
    const user = await db.User.get(id);
    console.log(user);
  }, 1000);

  // start timer
  t.setInterval();

  // after some time...

  // clear timer
  t.clearInterval();

API

new Timer(fn, period)

Timer constructor.

Params:

  • fn(required): function executed after every period. Should be a Promise or async function or generator function or thunk.
  • period(required): timer period(units: milliseconds).

setInterval(initialDelay, invokeImmediate)

Start timer after a certain delay(defaults to 0) and can decide if invoke immediately(defaults to false).

Params:

  • initialDelay(optional): Delay period(units: milliseconds) before timer gets triggered. default: 0
  • invokeImmediate(optional): specify if the timer function invoke immediately.default: false

clearInterval()

Stop timer(can be restart again).

Events

tick

Triggered each time fn is finished, whenever a error is thrown. You can cancel the timer in this event. A count parameter is passed in the event handler which stands for how many times fn has been called.

timer.on('tick', count => {
  timer.clearInterval();
});

error

Triggered when error thrown from fn.

timer.on('error', e => {
  logger.info(e.stack);
});

License

MIT

0.2.3

3 years ago

0.2.4

3 years ago

0.2.2

3 years ago

0.2.1

5 years ago

0.2.0

6 years ago

0.1.0

7 years ago