Функция не дожидается выполнения итераций с массивом и возвращает пустой массив. NodeJS
Функция должна пробегать по массиву расписаний в формате JSON, находить там преподавателей, если преподаватель уже встречался, то просто добавляем расписание в массив к преподавателю, если нет то создаём новый объект и так же добавляем. Но пытаясь получить финальный массив код возвращает пустоту [], но при вызове console.log(teacherSchedule)
корректно выводит массив.
/**
* Функция для получения расписания преподавателей из расписания групп
*/
async function readTeacherSchedule(){
var allSchedules = await db_logic.getTeacherSchedule();
var teacherSchedule = [];
for(var i = 0; i < allSchedules.length; i++){
var itemList = await JSON.parse(allSchedules[i]['schedule'])
for(var j = 0; j < await itemList.length; j++) {
var item = await itemList[j]
if(!teacherSchedule.hasOwnProperty(item['Host'])){
// Совпадение не найдено, добавляем преподавателя в массив
teacherSchedule[item['Host']] = []
teacherSchedule[item['Host']].push(item)
}
else{
// Проверка на повторение событий
if(! teacherSchedule[await item['Host']].includes(await item)){
teacherSchedule[await item['Host']].push(await item)
}
}
console.log(teacherSchedule.length)
}
}
console.log("1")
console.log(teacherSchedule.length)
console.log("2")
}
Источник: Stack Overflow на русском