I have the following function
function getParadas(req,res){
var find;
let paradas ={
paradasMetro:[],
paradasCercanias:[],
paradasBus:[]
}
var find1= ParadasMetro.find().sort('nombre_parada');
var find2= ParadasCercanias.find().sort('nombre_parada');
var find3= ParadasBus.find().sort('nombre_parada');
find1.exec((err,paradasM) => {
if(err){
console.log('Error en la peticion(Paradas metro)');
}else{
if(!paradasM){
console.log('No hay paradas de metro');
}else{
paradas.paradasMetro=paradasM;
}
}
});
find2.exec((err,paradasC) => {
if(err){
console.log('Error en la peticion(Paradas cercanias)');
}else{
if(!paradasC){
console.log('No hay paradas de cercanias');
}else{
paradas.paradasCercanias=paradasC;
console.log(paradas);
}
}
});
find3.exec((err,paradasB) => {
if(err){
console.log('Error en la peticion(Paradas bus)');
}else{
if(!paradasB){
console.log('No hay paradas de bus');
}else{
paradas.paradasBus=paradasB;
}
}
});
console.log(paradas);
res.status(200).send({
paradasResponse:paradas,
});
}
My problem is when filling the object paradas
. When it reaches the console.log(paradas)
of inside the function find2.exec()
it paints me the following:
{ paradasMetro: [],
paradasCercanias:
[ { _id: 598c9fe410ebd9a7a9445c52,
nombre_parada: 'Aeropuerto T4',
lineas: '1' },
/*Muchas mas paradas*/
{ _id: 598c9fe410ebd9a7a9445bf2,
nombre_parada: 'Zarzaquemada',
lineas: '5' } ],
paradasBus: [] }
That is, I recognize the object paradas
created above but I restart it in the execution of each find#.exec
since by the time it has reached this console.log()
has already passed the find1.exec()
and has had to fill the paradas.paradasMetro
, but I painted it empty. And when it reaches the console.log()
of the end, it paints all the empty objects
{ paradasMetro: [], paradasCercanias: [], paradasBus: [] }
Any idea why it can be?
Thanks in advance!