src/lowerdash.js
function eachParallel(obj, iterator, cb, max, bind){
		if(!_.isFinite(max))
			max = _.size(obj);
						
		var stepsToGo = _.size(obj),
			chunks = _.isIterable(obj) ? _.norris(obj, max) : _.chunk(obj, max);
		
		_.eachAsync(chunks, function(chunk, chunkKey, chunkCursor){
			var chunkIndex = 0;
			
			_.each(chunk, function(item, key){
				function cursor(){
					stepsToGo--;
					
					if(chunkIndex + 1 == max || stepsToGo == 0)
						chunkCursor();
						
					chunkIndex++;
				};
			
				iterator.call(bind, item, key, cursor, obj);
			});
		}, cb, bind);
		
		return obj;
	}
function eachParallel(obj, iterator, cb, max, bind){
		if(!_.isFinite(max))
			max = _.size(obj);
						
		var stepsToGo = _.size(obj),
			chunks = _.isIterable(obj) ? _.norris(obj, max) : _.chunk(obj, max);
		
		_.eachAsync(chunks, function(chunk, chunkKey, chunkCursor){
			var chunkIndex = 0;
			
			_.each(chunk, function(item, key){
				function cursor(){
					stepsToGo--;
					
					if(chunkIndex + 1 == max || stepsToGo == 0)
						chunkCursor();
						
					chunkIndex++;
				};
			
				iterator.call(bind, item, key, cursor, obj);
			});
		}, cb, bind);
		
		return obj;
	}
function eachParallel ( obj , iterator , cb , max , bind ) { if ( ! _ . isFinite ( max ) ) max = _ . size ( obj ) ; var stepsToGo = _ . size ( obj ) , chunks = _ . isIterable ( obj ) ? _ . norris ( obj , max ) : _ . chunk ( obj , max ) ; _ . eachAsync ( chunks , function ( chunk , chunkKey , chunkCursor ) { var chunkIndex = 0 ; _ . each ( chunk , function ( item , key ) { function cursor ( ) { stepsToGo -- ; if ( chunkIndex + 1 == max || stepsToGo == 0 ) chunkCursor ( ) ; chunkIndex ++ ; } ; iterator . call ( bind , item , key , cursor , obj ) ; } ) ; } , cb , bind ) ; return obj ; }
Invoke passed iterator on each passed array entry
All iterations are concurrents
@method eachParallel
@param {Object} obj			Object or array.
@param {Function} iterator	Iterator, invoked on each obj entry.
Passed arguments are <code>item</code>, <code>index</code> or
<code>key</code> (if passed object is iterable),
<code>cursor</code> and passed <code>arr</code>.
@param {Function} [cb]		Callback invoked when last iteration is done.
@param {Number} [max]		Amount of concurrent tasks.
@param {Object} [bind]	 	Object bound to iterator, default to passed <code>arr</code>.
Invoke passed iterator on each passed array entry All iterations are concurrents