Кто-то сказал мне, что при использовании setTimeoutвы должны очистить его с помощью clearTimeout. Я могу понять до истечения таймаута, но почему после? Или это неправда?
Кто-то сказал мне, что при использовании setTimeoutвы должны очистить его с помощью clearTimeout. Я могу понять до истечения таймаута, но почему после? Или это неправда?
Ответы:
Это неправда - сбросить тайм-аут после его завершения не вредно, но в этом нет необходимости.
Согласно спецификации :
Если дескриптор не идентифицирует запись в списке активных таймеров объекта WindowOrWorkerGlobalScope, для которого был вызван [clearTimeout], метод ничего не делает.
Другими словами, это запретная операция; ничего не происходит, и никаких ошибок не возникает.
На самом деле вам не нужно его использовать clearTimeout, вы используете его только в том случае, если хотите отменить тайм-аут, который вы уже установили до того, как это произойдет.
Это, как правило , более практично использовать clearIntervalс , setIntervalпотому что setIntervalобычно работает на неопределенный срок.
Нет причин очищать его после завершения. Возможно, ваш друг запутался setInterval.