Я создал var для setInterval, поэтому я могу остановить его с помощью clearInterval как такового:
var repeat = setInterval(sayHello, 2000);
function sayHello() {
alert("Hello");
}
и вот clearInterval:
clearInterval(repeat)
Теперь, в Firefox, когда я запустил этот бит, если я хочу узнать значение «повторить», он возвращает количество времени, в течение которого выполнялся интервал. Однако в Chrome, независимо от того, сколько раз он запускался, он всегда возвращает 1. Если я не выполняю всю процедуру заново, он возвращает 2. Он в основном увеличивает экземпляры, а не интервальные вхождения.
Любой, кто может пролить свет на это, как это работает и почему ... очень признателен!
Просто подумайте об этом: если repeat будет количеством времени, в течение которого выполняется интервал, как clearInterval() будет использовать это, чтобы остановить текущий интервал?
Большое спасибо, ребята!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Гарантируется только то, что setInterval вернет дескриптор, который затем может быть использован clearInterval. В остальном браузер полностью зависит от того, что это за дескриптор и как он используется. Даже если кажется, что он предоставляет некоторую информацию в одном конкретном браузере, на нее нельзя полагаться никоим образом, поскольку она может быть изменена.
Цитирую МДН:
The returned intervalID is a numeric, non-zero value which identifies the timer created by the call to setInterval(); this value can be passed to WindowOrWorkerGlobalScope.clearInterval() to cancel the timeout.
Не ожидайте и не полагайтесь на это, чтобы быть чем-то другим.
Нет,
repeat— это нет количество срабатываний таймера. Это просто номер идентифицирует таймера в системе. Каждый браузер управляет идентификаторами таймера по-разному, но цель одна и та же.