$ gnpm install 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)
Given that:
const limit = require('call-limit')
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.
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.
This is sugar for:
class.prototype.methodName = limit(class.prototype.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).
This is sugar for:
class.prototype.methodName = limit.promise(class.prototype.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).
Copyright 2013 - present © cnpmjs.org | Home |