главный setInterval игнорирует setTimeout внутри функции
Подскажите пожалуйста, как правильно должен выглядеть код. По задумке данный код должен запускать главную функцию main с интервалом с 100 мс и работать, пока на странице не закончатся элементы .choose-timeslot По завершению останавливаю setInterval в блоке else
Проблема в том, что функция main запускается с интервалом в 100 мс и абсолютно игнорирует таймеры внутри других функций
let interval = setInterval(main, 100)
function confirmClick(){
const footer = document.querySelector('.timeslots__footer'),
confirmBtn = footer.querySelector('.solid.noselect');
confirmBtn.click()
setTimeout(closeWindow, 2000)
}
function closeWindow(){
document.querySelector('.transparent.close-icon').click()
console.log('no slots')
document.querySelector('.choose-timeslot').click()
setTimeout(choiceClick, 1000)
}
function choiceClick(){
const tableDocs = document.querySelector('tbody-observe'),
doc = tableDocs.document.querySelector('.choose-timeslot');
doc.click()
}
function main(){
if (document.querySelector('.choose-timeslot')) {
document.querySelector('.choose-timeslot').click()
if (document.querySelector('.timeslot__label')) {
document.querySelector('.timeslot__label').click()
console.log('click to time slot')
setTimeout(confirmClick, 200)
} else {
setTimeout(()=>{
closeWindow();
}, 1500);
}
} else {
console.log('done')
clearInterval(interval)
}
}