Такова последовательность обработки данных в асинхронном виде. Можно разделить по разным переменным с промисами в разных строках, но порядок должен сохраняться.
Раньше были колбэки, теперь промисы, а проблемы те же.
Можно в таймере продолжить обработку, с проверкой предыдущего результата на непустое значение, но это будет изысканный костыль.
Здесь можно время хранить в минутах, так как позволяет точность записи расписания. Преобразования к отображению часов в таблице или миллисекунд для таймеров делаются простой арифметикой. Ну и отсчёт минут начинать по началу учебного дня, или суток, как удобней в общем.
Затем составлять массив записей с началом и концом в минутах для каждой учебной пары. А при загрузке страницы пройтись по этому массиву и выставить таймеры setTimeout для стилизации соответствующей строки таблицы. Таймер по началу для задания стиля, таймер по окончанию для удаления стиля. Естественно, таймеры для моментов, которые уже как бы прошли по времени дня, не выставлять, а провести проверку, какая пара длится и стилизовать её.
Зацикливать в интервал проверку времени не имеет смысла, ведь время фиксировано, что делать в указанные моменты известно.
[ ...(new Set( data.map( a => a.Date ) ) ) ] // список дат
.map( a => ({
Date: a,
persons: data.filter( b => b.Date === a ) // собираем записи по датам
}) );
Геометрия/Тригонометрия — для рисования на canvas и анимации всякой ерунды,
Алгебра — для написания формул расчёта во всяких корзинах и таблицах,
Матлогика — для составления условий и веток условных операторов,
Теория вероятностей и статистика — в дополнение к алгебре,
Теория множеств — для формирования достаточных и непротиворечивых классов/объектов/форматов.
Теория автоматов/алгоритмов — для осознания работы описываемых процессов во времени и, порой, пространстве,
Клиент-серверное взаимодействие — чтобы не тупить с fetch и axios.
Раньше были колбэки, теперь промисы, а проблемы те же.
Можно в таймере продолжить обработку, с проверкой предыдущего результата на непустое значение, но это будет изысканный костыль.