Это делается через
Promise.all, вот пример:
В nodejs цикл foreach асинхронный?
Вот реализация на моём примере:
https://jsfiddle.net/btymLuhk/3/
Прошу заметить что
forEach
был заменён на
map
, так-как для
Promise.all
нужен массив промисов, который и формируется.