如何重复`setInterval`?

时间:2019-10-26 18:24:46

标签: javascript jquery

如何重复setInterval

所以,我有一个函数(持续时间= 19秒,表示1次发信号)。

前4秒-标签为“文本1”, 接下来的7秒-标签为“文字2” 接下来的8秒-标签为“文字3”。

在19年代之后,它应该重复(我有var的信号-newCurrentElement),而且我也有该函数的空洞持续时间(timeNewCurremtElement)。

timeNewCurremtElementnewCurrentElement是已知的,所以您不必为此担心。

我试图进行循环(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 个答案:

答案 0 :(得分:1)

您可以带一个时间来更改文本并将文本作为值的对象。

为说明起见,此示例还显示了不变的计数。如果未使用,请删除else部分。

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);

答案 1 :(得分:1)

我认为您正在尝试做类似的事情

  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);