Хотя функция setTimeout
и не предназначена
для создания таймеров, однако их все равно
можно делать с ее помощью, если воспользоваться
рекурсией:
let i = 0;
function timer() {
setTimeout(function() {
console.log(++i);
timer(); // вызовем сами себя
}, 1000);
}
timer();
Остановить такой таймер можно просто не дав случится рекурсии:
let i = 0;
function timer() {
setTimeout(function() {
console.log(++i);
if (i < 10) { // запускаем, только если счетчик меньше 10
timer();
}
}, 1000);
}
timer();
Выведите в консоль число 0
. Через
секунду выведите число 1
, через две
секунды выведите число 2
, через 3
секунды выведите число 3
. И так далее
до бесконечности.