const async = require('async'); var processQueue = function (message, callback) { setTimeout(function() { console.log(`Task ${message} completed`); callback(); }, 500); } var queue = async.queue(processQueue, 3); queue.drain = function() { console.log('Yuppie all tasks completed'); } var processTasks = function () { for (let index = 1; index <= 10; index++) { queue.push(index); } } processTasks();