Измените каждый get*
метод, чтобы он возвращал Promise
(вместо использования обратных вызовов), и тогда вы можете использовать Promise.all
для массива этих Promises
.Promise.all
разрешится, когда все Promises
в массиве разрешатся - тогда вы можете res.render
:
getStates: () => new Promise((resolve, reject) => {
dbExecution.executeQuery("SELECT * FROM Table",
reject,
function(rowCount, more, rows) {
// if rowCount is 0, do you want to reject?
// if (rowCount === 0) reject();
resolve(rows);
}
)
})
Затем, как только все функции будут выглядеть, как указано выше:
router.get('/content', sessionChecker, function (req, res) {
Promise.all([
Module.getStates(),
Module.getReligion(),
]).then(([states, religions]) => {
res.render('info-user', { states, religions });
})
.catch((err) => {
// handle errors
});
});