первое что пришло в голову попробовать setInterval() с нужным промежутком. и завести какую-то константу сколько времени должен отрабатывать этот интервал например 5 сек. таким образом что-то типо того должно быть
const time = 5000;
setInterval(function(){
//код
}, 100)
каждые 100мс будет отрабатывать функция, обернуть ее в условие если 5000мс прошло, то остановить вызов функций
возможно я неправильно понял вопрос, но мне кажется копать в сторону интервалов вам нужно