Boa noite, amigos!
Aproveitando os ensinamentos do curso, estou querendo implementar um projeto no trabalho para por em prática os conceitos.
No código abaixo, necessito que o array só seja montado após o retorno de produtosDAO.listaGabineteCargo e produtosDAO.listaAcumuladorMax.
Utilizando setTimeout, consegui fazer funcionar, mas acredito que haja uma forma mais apropriada para implementar esse código.
Alguma dica de como faço o fluxo do meu código aguardar o retorno de produtosDAO.listaGabineteCargo e produtosDAO.listaAcumuladorMax???
Grato!
app.post("/escolha", function(req, res) {
var idGabineteCargo = req.body;
var array = [];
var connection = app.infra.connectionFactory();
var produtosDAO = new app.infra.ProdutosDAO(connection);
connection.connect();
for(var i=0;i<idGabineteCargo.id_gabinete_cargo.length;i++){
produtosDAO.listaGabineteCargo(idGabineteCargo.id_gabinete_cargo[i],function(err, results) {
var local_cargo = tipoCargo(results.rows[0].ds_cargo);
var acumuladorMax=0;
produtosDAO.listaAcumuladorMax(local_cargo,function(err, resultado) {
acumuladorMax=resultado.rows[0].max;
});
//setTimeout(function(){
var _config = {
orgao_julgador: results.rows[0].ds_orgao_julgador,
cargo: results.rows[0].ds_cargo,
acumulador: results.rows[0].nr_acumulador_distribuicao,
local: local_cargo,
maximo: acumuladorMax
};
array.push(_config);
// },100);
});//produtosDAO
if(i == (idGabineteCargo.id_gabinete_cargo.length-1)){
setTimeout(function(){res.render('reposicionamento/escolha', {lista:array})}, 200);
//connection.end();
}
}//for
});//escolha