Socket
Socket
Sign inDemoInstall

interval-promise

Package Overview
Dependencies
0
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    interval-promise

setInterval with setTimeout semantics for promises and async/await


Version published
Weekly downloads
10K
increased by10.15%
Maintainers
1
Install size
20.6 kB
Created
Weekly downloads
 

Readme

Source

Interval Promise

NPM Version Build Status Coverage Status

Overview

This library provides a simple mechanism for running a promise with a given amount of time between executions.

Standard Javascript » setInterval()

traditional interval

interval-promise » interval()

interval promise

Installation

npm install interval-promise

Usage

Simple example using async-await

const interval = require('interval-promise')

// Run a function 10 times with 1 second between each iteration
interval(async () => {
    await someOtherPromiseReturningFunction()
    await another()
}, 1000, {iterations: 10})

API

interval(func, intervalLength, options = {}) // returns Promise<undefined>

Arguments

ArgumentAttritubesDescription
funcfunctionRequired
Function to execute for each interval. MUST return a promise.

Two arguments are passed to this function.
  • iterationNumber number — The iteration number (starting at 1)
  • stop function — used to "stop" (skipping all remaining iterations)
intervalLengthnumber | functionRequired
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.
optionsobjectOptional settings (detailed below).
options.iterationsnumberDefault: Infinity
The number of times to execute the function. Must be Infinity or an integer greater than 0.
options.stopOnErrorbooleanDefault: 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 = require('interval-promise')

let stoppedExternally = false
const stopExternally = () => { stoppedExternally = true }

interval(async (iteration, stop) => {

    if (stoppedExternally) {
        stop()
    }
    
    // ... normal functionality ...
    
}, 1000)

// Some other work...
someOtherWork().then(() => {

    // Now that our "other work" is done, we can stop our interval above with:
    stopExternally()

})

Keywords

FAQs

Last updated on 15 Jan 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc