setinterval
TypeScript icon, indicating that this package has built-in type declarations

0.2.4 • Public • Published

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

Readme

Keywords

Package Sidebar

Install

npm i setinterval

Weekly Downloads

938

Version

0.2.4

License

none

Unpacked Size

8.97 kB

Total Files

8

Last publish

Collaborators

  • luckydrq