ChrisCinelli / smooth.js

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Smooth.js

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

async.map(keys, function(key, callback) {
  memcacheClient.get('ITEM_' + key, callback);
}, callback);

With smooth

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

About

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


Languages

Language:JavaScript 100.0%