| 
						 | 
						- # p-limit
 - 
 - > Run multiple promise-returning & async functions with limited concurrency
 - 
 - ## Install
 - 
 - ```
 - $ npm install p-limit
 - ```
 - 
 - ## Usage
 - 
 - ```js
 - const pLimit = require('p-limit');
 - 
 - const limit = pLimit(1);
 - 
 - const input = [
 - 	limit(() => fetchSomething('foo')),
 - 	limit(() => fetchSomething('bar')),
 - 	limit(() => doSomething())
 - ];
 - 
 - (async () => {
 - 	// Only one promise is run at once
 - 	const result = await Promise.all(input);
 - 	console.log(result);
 - })();
 - ```
 - 
 - ## API
 - 
 - ### pLimit(concurrency)
 - 
 - Returns a `limit` function.
 - 
 - #### concurrency
 - 
 - Type: `number`\
 - Minimum: `1`\
 - Default: `Infinity`
 - 
 - Concurrency limit.
 - 
 - ### limit(fn, ...args)
 - 
 - Returns the promise returned by calling `fn(...args)`.
 - 
 - #### fn
 - 
 - Type: `Function`
 - 
 - Promise-returning/async function.
 - 
 - #### args
 - 
 - Any arguments to pass through to `fn`.
 - 
 - 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
 - 
 - The number of promises that are currently running.
 - 
 - ### limit.pendingCount
 - 
 - The number of promises that are waiting to run (i.e. their internal `fn` was not called yet).
 - 
 - ### limit.clearQueue()
 - 
 - Discard pending promises that are waiting to run.
 - 
 - This might be useful if you want to teardown the queue at the end of your program's lifecycle or discard any function calls referencing an intermediary state of your app.
 - 
 - Note: This does not cancel promises that are already running.
 - 
 - ## FAQ
 - 
 - ### How is this different from the [`p-queue`](https://github.com/sindresorhus/p-queue) package?
 - 
 - This package is only about limiting the number of concurrent executions, while `p-queue` is a fully featured queue implementation with lots of different options, introspection, and ability to pause the queue.
 - 
 - ## Related
 - 
 - - [p-queue](https://github.com/sindresorhus/p-queue) - Promise queue with concurrency control
 - - [p-throttle](https://github.com/sindresorhus/p-throttle) - Throttle promise-returning & async functions
 - - [p-debounce](https://github.com/sindresorhus/p-debounce) - Debounce promise-returning & async functions
 - - [p-all](https://github.com/sindresorhus/p-all) - Run promise-returning & async functions concurrently with optional limited concurrency
 - - [More…](https://github.com/sindresorhus/promise-fun)
 - 
 - ---
 - 
 - <div align="center">
 - 	<b>
 - 		<a href="https://tidelift.com/subscription/pkg/npm-p-limit?utm_source=npm-p-limit&utm_medium=referral&utm_campaign=readme">Get professional support for this package with a Tidelift subscription</a>
 - 	</b>
 - 	<br>
 - 	<sub>
 - 		Tidelift helps make open source sustainable for maintainers while giving companies<br>assurances about security, maintenance, and licensing for their dependencies.
 - 	</sub>
 - </div>
 
 
  |