Воспользуйтесь промисами или либой типа async. Внезапно js поддерживает фичи функционального программирования. Из массива объектов можно создать массив промисов(или функций), а после запустить параллельное асинхронное выполнение, и получить результат, после того как все промисы/функции в массиве выполнились, Параллельный запуск осуществляется с помощью Promise.all() иди
async.parallel() // псевдо код
var yourArrayFromDB = [здесь массив исходных данных, например то, что вы до этого из бд запросили];
var promiseArray = yourArrayFromDB.map(
(elem) => new Rromise( function (resolve, reject) {
// функция которая обрабатывает что вам нужно асинхронно
request.get('your.url.com', fuction( err, res) {
if (err) reject(err);
resolve(res);
})
}
)
);
Promise.all(promiseArray)
.then((resArray) => { здесь делаете что хотите с массивом результатов асинхронных функций })
.catch(console.log);