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