0.9.0 • Published 8 years ago

in-parallel v0.9.0

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

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:

	//the proceedAfterParallelAction() method is provided
	var inParallel = require('in-parallel');

###A Simple Example

	var collection = [1,2,3];
	inParallel.run(collection, function(element){
		element++;
		collection.proceedAfterInParallelAction();
	}, 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:

	//a less simple use case with a MongoDB query
	var users = [user1,user2,user3];
	inParallel.run(users, function(user){
		//find the user's photos
		db.collection(PHOTOS_COLLECTION).findOne(searchQuery,function(err, doc) {
			if(err || !doc) {
			    	//handle the error
			    	if(err) console.log("Failed to find one doc: " + err.message);
		    		//call the provided proceed method after this user is done 
			   	collection.proceedAfterInParallelAction();
			} else {
				//find succeeded
				//do something with the result
				
				//call the provided proceed method after this user is done 
			  	collection.proceedAfterInParallelAction();
			}
		});
	}, function(){
		//everything is done
		//do something afterwards
		console.log("FINISHED!");
	}, function(err){
		//error. handle it
		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

  • 0.1.0 Initial release

##Credits I used this article to learn how to publish npm articles: https://quickleft.com/blog/creating-and-publishing-a-node-js-module/

0.9.0

8 years ago

0.8.0

8 years ago

0.6.0

8 years ago

0.4.0

8 years ago

0.3.0

8 years ago

0.2.0

8 years ago

0.1.0

8 years ago