Как повторить `setInterval`? - PullRequest
       3

Как повторить `setInterval`?

2 голосов
/ 26 октября 2019

Как я могу повторить setInterval?

Итак, у меня есть функция (Длительность = 19 с для 1 изменения).

Первые 4 секунды - метка«текст 1», следующие 7 секунд - метка «текст 2», а следующие 8 секунд - метка «текст 3».

И после 19 с это должно повториться (у меня var итераций - newCurrentElement), и у меня также есть продолжительность отверстия функции (timeNewCurremtElement).

timeNewCurremtElementи newCurrentElement известны, так что вам не стоит об этом беспокоиться.

Я пытался сделать цикл (for), но это не сработало.

function TextChanger() {
    counter = 0;

    clearInterval(timer);

    function TextChanger_Interval(){
        timer = setInterval(function() {
            counter++;

            if (counter <= 3) {
                $('#in-hold-out').html("Inhale");

            } else if (counter <= 10) {
                $('#in-hold-out').html("Hold");

            } else if (counter <= 18) {
                $('#in-hold-out').html("Exhale");

            } else {
                counter = 0;
                clearInterval(timer);
            }

        }, 1000);
    }

    TextChanger_Interval();

}

TextChanger();

Спасибо!

Ответы [ 2 ]

1 голос
/ 26 октября 2019

Я думаю, вы пытаетесь сделать что-то вроде этого

  let counter = 0;
  function TextChanger() {

    if (counter <= 3) {
      console.log(0);
    } else if (counter <= 10) {
      console.log(1);
    } else if (counter <= 18) {
      console.log(3);
    } else {
      counter = 0;
    }
    counter++
  }
  setInterval(TextChanger, 1000);
1 голос
/ 26 октября 2019

Вы можете взять объект со временем для изменения текста и текста в качестве значения.

Для иллюстрации в этом примере также показан неизменный подсчет. если не используется, удалите остальную часть.

setInterval((i => () => {
    const parts = { 0: 'text1', 4: 'text2', 11: 'text3' };
    if (parts[i]) console.log(parts[i]);
    else console.log(i);
    i++;
    i %= 19;
})(0), 1000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...