1.4.1 • Published 1 year ago

@antongolub/repeater v1.4.1

Weekly downloads
14
License
MIT
Repository
github
Last release
1 year ago

repeater

Helper for creating auto-calling functions

buildStatus npm (tag) dependencyStatus devDependencyStatus Maintainability Test Coverage js-standard-style

Motivation

The wheel was invented a long time ago: repeat. What's the diff?

  • Repeater stores the last call params and uses them for next invocations.
  • Inherits target's iface.
  • Allows to combine manual and automated calls.
Usage example
    import repeater from '@antongolub/repeater'
    
    const target = step => { this.i += step }
    const context = { i: 0 }
    const delay = 1000
    const rep = repeater(target, delay, context)
    
    rep(2)
    
    // Imagine, 5 seconds later new 'manual' call occurs
    setTimeout(() => rep(1), 5000)

    // ~10 seconds after start: 
    setTimeout(() => console.log(context.i), 10000) // 15

Repeater is just a wrapper around the target function. It exposes several util props:

PropDescription
delayinterval in ms
timeoutTimeoutID
targetref for original target function
contextoptional scope
limitoptional remainder of calls
argsarguments of the last invocation

So, anytime you're let to interrupt the repetitive call by clearing timeout:

    clearTimeout(rep.timeout)
Parametrization
    const rep1 = repeater(target, delay, context, limit)
    const rep2 = repeater({target, delay, context, limit})
1.4.1

1 year ago

1.4.0

2 years ago

1.3.0

2 years ago

1.2.1

2 years ago

1.2.0

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago