Interval Promise
Overview
This library provides a simple mechanism for running a promise with a given amount of time between executions.
Standard Javascript » setInterval()
interval-promise » interval()
Installation
npm install interval-promise
Usage
Simple example using async-await
const interval = // Run a function 10 times with 1 second between each iteration
API
// returns Promise<undefined>
Arguments
Argument | Attritubes | Description |
---|---|---|
func |
function | Required Function to execute for each interval. MUST return a promise. Two arguments are passed to this function.
|
intervalLength |
number | function | Required Length in ms to wait between iterations. Should be (or return) a non-negative integer. If a function is used, one parameter iterationNumber (starting at 1) is passed. |
options |
object | Optional settings (detailed below). |
options.iterations |
number | Default: Infinity The number of times to execute the function. Must be Infinity or an integer greater than 0. |
options.stopOnError |
boolean | Default: true If true, no subsequent calls will be made. The promise returned by interval() will be rejected and pass through the error thrown. |
Project Values
- Approachability — Basic usage should be concise and readable.
- Debuggability — Error feedback should be helpful and error handling options should be flexible.
- Stability — Functionality should be well-tested and reliable.
Acknowledgements
This library was inspired by reissue.
FAQ
How can I stop the interval from outside the interval function?
There isn't currently direct feature to stop the iterations externally. You can, however, achieve this by checking a variable in the parent scope (of where the function is defined). Check out the code below.
const interval = let stoppedExternally = falseconst stopExternally = { stoppedExternally = true } // Some other work...