在 Javascript 上停止函数

Stop a function on Javascript

我是 JS 的初学者。我想编写一个函数,使 body 的背景颜色在红色和白色之间交替大约 5 秒钟。我写了这段代码:

var x = 1;

function alarma() {
    setInterval(cambio, 200);

    function cambio() {
        if (x == 1) {
            $("body").css("background-color", "red");
            x = 2;
        }
        else {
            $("body").css("background-color", "white");
            x = 1;
        }
    }
}

我测试了代码并且它工作了,但我不知道如何只执行该功能 5 秒。

知道如何解决这个问题吗?

谢谢!

您可以使用以下代码,它将您的时间间隔分配给一个 interval 变量,然后使用 setTimeout 在 5 秒后清除该时间间隔。

function alarma() {
  const interval = setInterval(cambio, 200);
  
  setTimeout(() => {
    clearInterval(interval);
  }, 5000);
  
  let x = 1;
  
  function cambio() {
    if (x == 1) {
      $("body").css("background-color", "red");
      x = 2;
    } else {
      $("body").css("background-color", "white");
      x = 1;
    }
  }
}

alarma();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>