Вы не наблюдаете асинхронное выполнение вашего вызова БД. console.log(usersList);
происходит ДО вызова db, поэтому он пуст.
Вы должны адаптировать свой код следующим образом и опубликовать код ПОСЛЕ выполнения db:
app.post('/submitLogin', function (req, res) {
getUsersGroups().then((data) => {
console.log(data)
res.send(data.usersList)
})
})
function getUsersGroups () {
const users = new Promise((resolve, reject) => {
dbConnection
.getUsers()
.then(data => {
resolve(data)
})
})
const groups = new Promise((resolve, reject) => {
dbConnection
.getGroups()
.then(data => {
resolve(data)
})
})
return Promise.all([users, groups])
.then(data => {
console.log(data[0])
return {
usersList: data[0],
groupsList: data[1]
}
})
}
Я настоятельно рекомендуюне изменяйте глобальную переменную, такую как usersList
(которую я удалил из моего примера), потому что, если вы получите два запроса одновременно, второй может перезаписать данные первого и вызвать много побочных эффектов.