node/deps/npm/node_modules/call-limit
claudiahdz a7c7c703af
deps: upgrade npm to 6.13.1
PR-URL: https://github.com/nodejs/node/pull/30533
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2019-11-20 19:16:47 -05:00
..
call-limit.js deps: upgrade npm to 6.10.2 2019-08-06 09:05:32 +02:00
CHANGELOG.md deps: upgrade npm to 6.10.2 2019-08-06 09:05:32 +02:00
LICENSE deps: upgrade npm to 6.10.2 2019-08-06 09:05:32 +02:00
package.json deps: upgrade npm to 6.10.2 2019-08-06 09:05:32 +02:00
README.md deps: upgrade npm to 6.13.1 2019-11-20 19:16:47 -05:00

call-limit

Limit the number of simultaneous executions of a async function.

const fs = require('fs')
const limit = require('call-limit')
const limitedStat = limit(fs.stat, 5)

Or with promise returning functions:

const fs = Bluebird.promisifyAll(require('fs'))
const limit = require('call-limit')
const limitedStat = limit.promise(fs.statAsync, 5)

USAGE:

Given that:

const limit = require('call-limit')

limit(func, maxRunning) → limitedFunc

The returned function will execute up to maxRunning calls of func at once. Beyond that they get queued and called when the previous call completes.

func must accept a callback as the final argument and must call it when it completes, or call-limit won't know to dequeue the next thing to run.

By contrast, callers to limitedFunc do NOT have to pass in a callback, but if they do they'll be called when func calls its callback.

limit.promise(func, maxRunning) → limitedFunc

The returned function will execute up to maxRunning calls of func at once. Beyond that they get queued and called when the previous call completes.

func must return a promise.

limitedFunc will return a promise that resolves with the promise returned from the call to func.

limit.method(class, methodName, maxRunning)

This is sugar for:

class.prototype.methodName = limit(class.prototype.methodName, maxRunning)

limit.method(object, methodName, maxRunning)

This is sugar for:

object.methodName = limit(object.methodName, maxRunning)

For example limit.promise.method(fs, 'stat', 5) is the same as fs.stat = limit.promise(fs.stat, 5).

limit.promise.method(class, methodName, maxRunning)

This is sugar for:

class.prototype.methodName = limit.promise(class.prototype.methodName, maxRunning)

limit.promise.method(object, methodName, maxRunning)

This is sugar for:

object.methodName = limit.promise(object.methodName, maxRunning)

For example limit.promise.method(fs, 'statAsync', 5) is the same as fs.statAsync = limit.promise(fs.statAsync, 5).