Считается ли функция settimeout промежуточным JavaScript - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь отладить программу и хочу узнать, какую функцию setTimeout следует учитывать в приведенном ниже коде.

var timeOut = setTimeout(function(){
   alert("hi");
}, 2000);
// console.log(timeOut);

Если я вставлю эти точные строки кода в мою программу, консоль не прочитает ничего, кроме целого числа (в моем случае число 2).

Если я поместил код в цикл for, переменная timeOut будет увеличиваться, начиная с 2, затем с 3 и т. Д.

Это ожидаемое поведение?

Главное, что я хотел отладить, - это попытаться очистить тайм-аут следующим образом:

"clearTimeout(timeOut);" 

Не удается очистить, и предупреждение все еще срабатывает.Однако я не могу найти в своем коде ничего, что могло бы вызвать это, и если я изменяю имена переменных, чтобы избежать возможных конфликтов, я пропустил это, все равно то же самое поведение.

Поэтому мой вопрос заключается в том, чтобы функции setTimeout возвращали целое числопо умолчанию, и то, что я мог бы найти, могло бы вызвать такое поведение.

1 Ответ

0 голосов
/ 06 декабря 2018

Да, timeOut в вашем фрагменте выше - это число - идентификатор события тайм-аута, чтобы вы могли затем очистить его, если хотите.(Это отличается на стороне сервера, где с помощью node.js setTimeout возвращает объект, но эффект и использование одинаковы.)

Этот код удалит время ожидания:

var timeOut = setTimeout(function(){
   alert("hi");
}, 2000);
clearTimeout(timeOut);

Если ваш тайм-аут не очищается, значит, у вас неправильный идентификатор или вы его удалили слишком поздно.

...