0.0.4 • Published 11 years ago
fnlimit v0.0.4
FnLimit 
A bit of code that will limit and iterate a function call.
Install
npm install fnlimit
npm install ben-bradley/fnlimit
Example
Iterating a specified number of times
var fnlimit = require('../');
var i = 0;
fnlimit({
times: 20,
limit: 6,
progress: true, // optional
callback: function (next) {
setTimeout(function () {
next();
}, 1000);
},
done: function (err) {
console.log('All done!');
}
});Iterating a list of items
var fnlimit = require('../');
var i = 0;
fnlimit({
limit: 3,
list: [ 1, 2, 3, 4, 5, 6 ],
progress: true, // optional
callback: function (item, next) {
setTimeout(function () {
console.log(item); // => 1, 2, 3, ...
next(err, 'a result!');
}, 1000);
},
done: function (err) {
console.log('All done!');
}
});Options
times- (Number) The number of times that you want to call thecallback.limit- (Number) The number ofcallbacks to run at the same time.list- (Array) A list of items to provide to thecallback. If specified, each item is injected intocallbackas the first argument andnext()becomes the second arg.progress- (Boolean|Array, optional) Iftrue, then it will display the default progress bar with each call ofnext(). Alternatively, you can provide an array of arguments to send toProgressBar()using
fnlimit({
times: 20,
limit: 6,
// see https://github.com/visionmedia/node-progress#tokens
progress: [ '[:bar] :percent', { width: 80 } ], // or progress: true,
callback: function (next) {
setTimeout(function () {
next();
}, 1000);
},
done: function (err) {
console.log('All done!');
}
});callback- (Function) The function to iterate. Provides anextfunction called within thecallbackto iterate correctly.done- (Function) The function to call when all iterations are complete. Provides an error which is passed through if provided tonext.
Versions
- 0.0.4 - Modified
next()to accept results and pass them todone() - 0.0.3 - Added
listoption to inject an item intocallback - 0.0.2 - Added custom progress bar option
- 0.0.1 - Initial drop