Работает ли clearTimeout внутри самого setTimeout() ????

let number = 5;


let tikTok = setTimeout(function tick() {
	if (number > 10) {
		console.log("number больше 10");

		clearTimeout(tikTok);
	}
	console.log(number)
	number = number + 1
	tikTok = setTimeout(tick, 1000)
}, 1000);


Результат: 5.6.7.8.9.10
number больше 10
11
number больше 10
12
number больше 10

Окей, а как остановить setTimeout?
  • Вопрос задан
  • 307 просмотров
Решения вопроса 2
Stalker_RED
@Stalker_RED
Вопрос из заголовка не имеет смысла.
Таймаут срабатывает однократно, и если он уже сработал, то зачем его удалять?

А в коде у вас вы сперва удалаяете таймаут, а на три строки ниже создаете новый.
Ответ написан
@KingstonKMS
let number = 5;

let tikTok = setTimeout(function tick() {
if (number > 10) {
console.log("number больше 10");
} else {
console.log(number)
number = number + 1
tikTok = setTimeout(tick, 1000)
}
}, 1000);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
zkrvndm
@zkrvndm
Архитектор решений
Вы похоже не слышали про setInterval и clearInterval?
Ответ написан
Комментировать
@Vlad_Murashchenko
Просто добавь return в место своего clearTimeout
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект