Next Phenomenal Microbrewery

    plimit-lit
    TypeScript icon, indicating that this package has built-in type declarations

    1.3.0 • Public • Published

    plimit-lit

    This package is a helper to run multiple promise-returning & async functions with limited concurrency.

    Requirements

    • Node v12+

    Installation

    $ npm i plimit-lit
    # or
    $ yarn add plimit-lit

    Usage

    import { pLimit } from 'plimit-lit';
    
    const limit = pLimit(1);
    
    (async () => {
    	// NOTE: Only one promise is run at once
    	const result = await Promise.all([
    		limit(() => fetchSomething('foo')),
    		limit(() => fetchSomething('bar')),
    		limit(() => doSomething()),
    	]);
    	console.log(result);
    })();

    API

    limit = pLimit(concurrency)

    Returns a limit function to enqueue promise returning or async functions.

    concurrency

    Type: number

    Number of the concurrency limit.

    limit(fn, ...args)

    Returns a promise returned from calling fn(...args).

    fn

    Type: Function

    Promise-returning or async function.

    args

    Optional arguments fn is being called with.

    Note: Support for passing arguments on to the fn is provided in order to be able to avoid creating unnecessary closures. You probably don't need this optimization unless you're pushing a lot of functions.

    limit.activeCount

    Static method that returns the number of promises currently running.

    limit.pendingCount

    Static method that returns the number of promises currently waiting to be run (i.e. their internal fn was not called yet).

    limit.clearQueue()

    Clear the internal queue of promises. This discards pending promises that are waiting to be run.

    Note: This does not cancel in-flight promises!

    Development

    (1) Install dependencies

    $ npm i
    # or
    $ yarn

    (2) Run initial validation

    $ ./Taskfile.sh validate

    (3) Start developing. See ./Taskfile.sh for more tasks to help you develop.


    This project was set up by @jvdx/core

    Keywords

    none

    Install

    npm i plimit-lit

    DownloadsWeekly Downloads

    91,008

    Version

    1.3.0

    License

    MIT

    Unpacked Size

    12 kB

    Total Files

    7

    Last publish

    Collaborators

    • joelvoss