Не могу добавить данные, пришедшие из базы данных, в массив(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
}))
}