humiliation
@humiliation
Чем больше знаю - тем больше дурак

Как сделать разный интервал на таймер?

var array = ["1","2","3"];
var delay = function(arg){
console.log(arg)
if(arg === 0) return 6000;
if(arg === 1) return 10000;
if(arg === 2) return 4500;
};

var count = 0

function c(){
count++;
if(count > 2) count = 0;
return count;
}

setInterval(c, delay(count));

Подскажите. Нужно реализовать таймер на разное время выполнения - их всего 3. Сейчас я получаю таймер, который каждые 6с выполняет функцию c, но значение delay(count) почему-то не меняется, хотя внутри функции оно работает, как мне надо.
Верно ли, что:
setInterval(c, delay(count));
вызывается один раз в самом начале и далее delay(count) не обновляется? Если да, то как тогда передать ему новое значение?
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
setInterval(c, delay(count));
Вызывается один раз при вызове setInterval Пишите так
var array = ["1","2","3"];
var delay = function(arg){
console.log(arg)
if(arg === 0) return 6000;
if(arg === 1) return 10000;
if(arg === 2) return 4500;
};

var count = 0

function c(){
count++;
if(count > 2) count = 0;
setTimeout(c, delay(count));
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
Никак. Можно функцию вызывать через setTimeout (он одноразовый в отличие от setInterval) и внутри функции по-новой назначать setTimeout, с той же функцией, но уже другим временем.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы