async.js: parallel get

/**
 * jednoczesne wywolanie GET'ow na adresy
 * zwracana jest tablica odpowiedzi w callbacku
 * jako drugi parametr lub error jako pierwszy
 */
var parallelGets = function(urls, callback) {
	var calls = urls.map(function(url){
		return function(callback){
 	    	       $.get(url, function(data){
				callback(null, data);
	    	       }).fail(function(jqXHR){
	    		        callback(jqXHR);
	    	       });				
		};
	});
	async.parallel(calls, function(err, res){
		if(err) {
			callback(err);
		} else {
			callback(null, res);
		}
	});		
}

Leave a Reply