in-parallel
A node module for running async tasks on an array and finishing together to run a final function.
Installation
npm install in-parallel --save
Usage
Initialize inParallel like so:
var inParallel = require('in-parallel');
###A Simple Example
var collection = [1,2,3];
inParallel.run(collection, function(element){
element++;
this.proceedAfterParallelAction();
}, function(){
collection.push(5);
});
###A Less Simple Example With MongoDB Queries
Imagine you have a bunch of users and each user has a bunch of photos all stored in a mongodb. If you have to get each user's photo and do something with them, it'd probably be best to run such tasks in parallel:
var users = [user1,user2,user3];
inParallel.run(users, function(user){
db.collection(PHOTOS_COLLECTION).findOne(searchQuery,function(err, doc) {
if(err || !doc) {
if(err) console.log("Failed to find one doc: " + err.message);
this.proceedAfterInParallelAction();
} else {
this.proceedAfterInParallelAction();
}
});
}, function(){
console.log("FINISHED!");
}, function(err){
console.log(err.message)
});
Config
###Debug Messages
Debug messages are printed to the console by default but you can choose not have that like so:
inParallel.config({showDebugMessages:false});
Tests
npm test
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style.
Add unit tests for any new or changed functionality. Lint and test your code.
Release History
##Credits
I used this article to learn how to publish npm articles:
https://quickleft.com/blog/creating-and-publishing-a-node-js-module/