@Reding

Как правильно работать с таймерами?

Добрый день.

У меня есть функция, которая вызывает обратный отсчёт

function timer() {
    let sec = 60;
    timerStart = setInterval(() => {
        console.log(sec);
        sec--;
        if(sec == 0) {
            clearInterval(timerStart);
        }
    }, 1000);
}


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

Как это можно исправить?
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Одним словом "const"
function timer() {
    let sec = 60;
    const timerStart = setInterval(() => {
        console.log(sec);
        sec--;
        if(sec == 0) {
            clearInterval(timerStart);
        }
    }, 1000);
}


В исходном коде переменная timerStart глобальная, и, вероятно, останавливается единственный таймер, запущенный последним.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 30 000 до 65 000 руб.
от 60 000 до 90 000 руб.
BSSL Москва
от 50 000 до 150 000 руб.
19 июл. 2019, в 21:28
990 руб./за проект
19 июл. 2019, в 21:02
2000 руб./за проект