Вам просто нужно объявить to
перед if
, чтобы оно существовало при запуске if
(и оно не определено).Вам не нужно придавать ему фактическое значение до тех пор, пока позже.
На самом деле, вы, вероятно, захотите объявить его вне функции, поэтому он будет сохраняться при следующем вызове функции.
Вот пример запускаемой программы.Обратите внимание, что несмотря на двойной вызов blablah (), вы видите «hello» только один раз, потому что второй вызов функции отменил исходное время ожидания.
var to;
function blabla() {
//...
if (to) {
clearTimeout(to)
}
to = setTimeout(() => {
//do some stuff
console.log("hello");
}, 10000)
}
blabla();
blabla();