Пишу условие, если == true то выполнить следующие действия, если нет то просто записать объект, в итоге в консоль выводится menuOtd, но наполнен он только в тех местах в которых срабатывает else, т.е часть после if выполняется но не пушится в общий массив. Я выводил переменную val в консоль но там все ок, т.е код выполнен но он не пушится. В чем дело?
pnd.findOne({where: {id: 1}})
.then(pnds => {
pnds.getOtds()
.then(otds =>{
var menuOtd = [];
for(ot of otds){
var val = {};
if(ot.pndOtd.sub == 'true'){
otd.findOne({where: {id: ot.id}})
.then(ots=>{
ots.getSubOtds()
.then(sub => {
var q =[];
for(a of sub){
//console.log('Отделения ' + ots.name + '!Под ' +a.name)
q.push(a.name);
}
val = {
name: ots.name,
sub: 'true',
pndId: 1,
subm: q
}
menuOtd.push(val);
})
})
}else{
val = {
name: ot.name,
sub: 'false'
}
menuOtd.push(val);
}
}
console.log(menuOtd)
response.render('index',{
pndli: pndli,
pnd: info,
table: table,
otd: menuOtd
});
})
});