gtomilin
@gtomilin
JavaScript HTML CSS

Периодически не срабатывает setTimeout — в чём может быть проблема?

Есть функция которая срабатывает при setTimeout - периодически не срабатывает.

function someName(){
if (true){
		setTimeout(anoutherFunction, 2000);
	}
}


Как проверить причину - на сайте много всякого шлака который подгружается - нужно выставить этот setTimeOut в приоритет - думаю проблема в стеке задач - но не хватает опыта отладить процесс) но может быть ещё в чём-то)
  • Вопрос задан
  • 791 просмотр
Решения вопроса 1
lazalu68
@lazalu68
Salmon
Если действительно сам алгоритм правильный, и всё ломается из-за каких-то сторонних эффектов, то всё уже сложнее. Если например вы считаете, что сторонние скрипты сбрасывают таймауты, то можно попробовать декорировать clear* и посмотреть действительно ли какой-то скрипт их вызывает для массового сброса:

(() => {
    [ 'clearInterval', 'clearTimeout' ].forEach(method_name => {
        const original_method = window[ method_name ];
        window[ method_name ] = function() {
            console.log(`method ${ method_name } is called with arguments:`, arguments)
            return original_method.apply(this, arguments)
        }
    })
})()
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
bootd
@bootd
Гугли и ты откроешь врата знаний!
setTimeout то скорей всего работает, а вот то, что происходит внутри функции, скорей всего не всегда работает как ожидается. Простой console.log внутри setTimeout покажет, что она работает.

Никаких приоритетов у него нет
Ответ написан
twobomb
@twobomb
Нет такой функции setTimeOut, есть setTimeout
P.S. Если только вы не создали свою функцию с таким именем
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы