Smooth, throttle, queue async function parallel execution with a limitation.

npm install smooth
1 downloads in the last day
5 downloads in the last week
17 downloads in the last month


module(limitation, max_queue, timeout)

  • limitation - default 10
  • max_queue if the queue size big than max_queue, will show an warn message.
  • timeout in ms - default 5000ms
var limit = 5;
var smooth = require('smooth')(limit);

smooth(fn, [limit, [max_queue, [timeout]]])

smooth a function

foo = smooth(foo);

smooth a method of class.

RedisClient.prototype.get = smooth(RedisClient.prototype.get);

smooth a method of object.

redisClient.get = smooth(redisClient.get)

work with async.js

Without smooth, function(key, callback) {
  memcacheClient.get('ITEM_' + key, callback);
}, callback);

With smooth, smooth(function(key, callback){
  memcacheClient.get('ITEM_' + key, callback);
}), callback);
npm loves you