Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

precision-timeout-interval

ufukbakan864ISC4.3.0TypeScript support: included

High precision, hardware accelerated timeout and interval methods for javascript

hardware, accelerated, timer, timers, high, precision, timeout, setTimeout, interval, setInterval, performance, prevent, lag, delay, anti-lag, anti-delay

readme

precision-timeout-interval

Hardware accelerated javascript timing interface.

node workflow badge node workflow badge node workflow badge node workflow badge node workflow badge node workflow badge

demo preview

Click here for live demo

V4 Brings the most developer friendly timing methods


Installation

npm i precision-timeout-interval@latest

Importing

  // ES6:
  import { prcTimeout, prcInterval } from 'precision-timeout-interval';
  // CommonJS: 
  const { prcTimeout, prcInterval } = require('precision-timeout-interval');

Easy Interface

  let timeoutController = prcTimeout(delayInMilliseconds, callbackFunction);
  let interval = prcInterval(delayInMilliseconds, callbackFunction);

Introducing Awesome V4 Features

  • Timeouts are now cancellable:

    let myTimeout = prcTimeout(500, () => console.log("I'm gona be cancelled") );
    myTimeout.cancel()
  • And of course intervals are too

  • Interval controller is completely changed

    Meet with new interval controller methods: cancel, restart, pauseResume and setPeriod

    let myInterval = prcInterval(100, () => console.log("Hello V4") ); // start
    myInterval.pauseResume(); // pause
    myInterval.pauseResume(); // resume
    myInterval.restart(); // restart counter
    myInterval.setPeriod(1000); // set a new period and restart
    myInterval.cancel() // stop

    WithDelta Support Since V3.0.0

    Timers and Intervals can autobind delta time if you wish as callback parameter. Usefull especially for game developers.

    prcTimeoutWithDelta(50, (deltaT) =>{
      console.log("Hello, after "+ deltaT +" msecs");
    });