var data = []; for (var i = 0; i < 100; i = i + 5) { data.push(i); } $('#output').append('Our Inital Array<br/>'); $('#output').append('====================<br/>'); for (var i = 0; i < 100; i = i + 5) { $('#output').append(i + "<br/>"); } $('#output').append('====================' + '<br/>'); $('#output').append('Lets start Parallel Processing' + '<br/>'); async.each(data, processData, function (err) { if (err) { $('#output').append('OOPS! How is this possible?' + "<br/>"); } $('#output').append('Parallel Processing Done<br/>'); $('#output').append('====================' + '<br/>'); $('#output').append('Lets Start Same Operation In Series'); async.eachSeries(data, processData, function (err) { if (err) { $('#output').append('OOPS! How is this possible?' + "<br/>"); } $('#output').append('Series Processing Done<br/>'); $('#output').append('====================' + '<br/>'); $('#output').append('Lets Start Same Operation In Series But With 5 at time'); async.eachLimit(data, 5, processData, function (err) { if (err) { $('#output').append('OOPS! How is this possible?' + "<br/>"); } $('#output').append('Series Processing Done<br/>'); $('#output').append('====================' + '<br/>'); }); }); }); function processData(item, callback) { //we are just diving the number by 5 //but we can actually do a very long process here setTimeout(function () { var date = new Date(); $('#output').append((item / 5) + ' Finished At ' + date.getHours() + ":" + +date.getMinutes() + ":" + +date.getSeconds() + '<br/>'); callback(null); //no error //incase of error pass the error in callback function }, 1000); }