如何正确处理两个或多个Javascript计时器

时间:2019-02-19 02:51:53

标签: javascript

我有一个要每两秒钟调用一次的函数。 在该函数中,我正在显示一些文本,这些文本在一秒钟后调用另一个将文本隐藏一秒钟的函数。实际上,它每秒都会闪烁一次图片。

完成此操作后,它将再次运行x次,直到满足条件为止。

我在正确安排时间方面遇到问题。

const getRandomNumber = () => {
    myFunction();
    textContent = 3;
}

function myFunction() {
    updatecurrent.textContent = "";
    setTimeout(myFunction, 1000);
}

var myVar = setInterval(getRandomNumber, 2000 );

1 个答案:

答案 0 :(得分:0)

我不知道您为什么要为此使用两个计时器,或者我不太了解您的问题,但是要做到这一点,您只需要这样的东西:

let text = "Some Text";
let display_text = "";
let show = true;
let interval_ref;

function start(){
  show = true;
  interval_ref = setInterval(()=>{
    if(!show) {
      clearInterval(interval_ref); // stop the loop
    }
    else{
      if(display_text){
        display_text = "";
      }
      else{
        display_text = text;
      }
      document.getElementById("display-text").innerHTML = display_text;
    }
  }, 1000);
}

function stop(){
  show = false;
}
<div>
  <button type="button" onclick="start()">Start</button>
  <button type="button" onclick="stop()">stop</button>
</div>
<p id="display-text"></p>