cities у вас ничего не возвращает Но самое смущающее - то, что вы асинхронную функцию передаёте в метод с синхронным контрактом Мне кажется, что лучше через map преобразовать индексы в запрос getData по каждому индексу Вы получите массив промисов, который передадите в Promise.all, ответы на каждый промис будут в том порядке, в каком вы их передали в Promise.all