stateful-dynamic-interval

1.0.1 • Public • Published

stateful-dynamic-interval

🕐 The stateful dynamic interval


build npm

A pauseable and resumeable setInterval built around dynamic-interval

Install

npm install --save stateful-dynamic-interval

then

import setStatefulDynterval from 'stateful-dynamic-interval'

or

import { StatefulDynterval } from 'stateful-dynamic-interval'

Usage

import { StatefulDynterval } from 'stateful-dynamic-interval'
 
const timer = new StatefulDynterval(context => console.log('tick', context), 1000)
 
timer.pause()
// ...
timer.resume()

You may also customize the underlying timer and can change the duration of the interval on each tick.

Check out the dynamic-interval package for more details.

Example

This script doubles the amount of time between intervals on each iteration, starting with 50ms.

import { StatefulDynterval } from 'stateful-dynamic-interval'
 
const timer = new StatefulDynterval(context => ({ wait: context.wait * 2 }), 50)
 
setTimeout(() => {
  timer.pause()
 
  setTimeout(() => {
    // this resumed step will only run for the remaining time in the interval,
    // which may be dynamic, meaning it can change on each iteration based on
    // the return value of the callback function (this example is dynamic)
    timer.resume()
  }, 1000)
}, 1000)

Interface

setStatefulDynterval(step, config, api)

.run()

Starts the interval. Instantiated StatefulDyntervals will automatically call run unless the lazy config property is set to true.

  • Alias: play

.clear()

Stops or clears out the interval. Once an interval has been cleared it cannot be resumed.

  • Alias: stop

.pause()

Pauses the interval so that it can be resumed at a later point.

.resume()

Resumes a previously paused interval.

.add(interval)

Synchronizes the parent interval with a child interval.

Child intervals automatically subscribe to the following topics of their parents:

  • run
  • clear
  • pause
  • resume

.detach()

Desynchronizes a parent interval from all of its children by unsubscribing them from their parent topics.

License

MIT

Package Sidebar

Install

npm i stateful-dynamic-interval

Weekly Downloads

15

Version

1.0.1

License

MIT

Unpacked Size

21.3 MB

Total Files

4435

Last publish

Collaborators

  • slurm