Не могу добавить данные, пришедшие из базы данных, в массив(Node js, sequelize, Postgresql)

Имеется массив видов спорта.

sports = [
  "Футбол",
  "Теннис",
  "Хоккей",
  "Баскетбол",
  "Волейбол",
]

По нему идет перебор, который ищет данные с этим видом спорта в базе данных.

let matches = []
sports.forEach(async(item, i, arr) => {
  matches.push(await table.findAll({where:{"sport": item},limit,page}))
})

Однако при отправке ответа response.send(matches) отправляется пустой массив


Ответы (1 шт):

Автор решения: Danil Apsadikov

Это происходит потому, что у вас в forEach асинхронная функция, если вы хотите дождаться выполнения всех запросов, то используйте обычный цикл

for (let i = 0; i < sports.length; i++) {
  matches.push(await table.findAll({
    where: {
      "sport": sports[i]
    },
    limit,
    page
  }))
}
→ Ссылка