вот есть такая функция и она по факту работает но по какой-то причине setTimeout игнорируется и не ждёт время до повторного запуска а лишь бесчисленное раз запускает функцию, как это можно исправить и может есть какие-то варианты получше как это реализовать?