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

2.1.0 • Public • Published

plimit-lit

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

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

Dependents (8)

Package Sidebar

Install

npm i plimit-lit

Weekly Downloads

469,516

Version

2.1.0

License

MIT

Unpacked Size

12.1 kB

Total Files

7

Last publish

Collaborators

  • joelvoss