| # p-limit [](https://travis-ci.org/sindresorhus/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> | |
Xet Storage Details
- Size:
- 2.89 kB
- Xet hash:
- d1d601fbd1e63e559b7efc3c2f0f006f80848c68f1c3efe48f21404f711ce76e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.