setInterval - 如何只开一次?

Sta*_*tan 6 javascript jquery setinterval

您好我有这段代码即使在我选择的时间之后也会触发一些代码.

问题是,例如,如果我放3秒钟它会每3秒发射一次,我需要的是它在3秒后仅发射一次.

function playSound(timeLeft){
   var sendDataTimeout = function(){
      alert('OK');
   }
   var intervalReference = 0;
   clearInterval(intervalReference);
   intervalReference = setInterval(sendDataTimeout, timeLeft);
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*oph 12

您需要setInterval,不需要setTimeout.

顾名思义,setInterval定期发射,而setTimeout只发射一次.但用法是一样的.


Sim*_*röm 12

setTimeout相反,使用它几乎相同,但只会触发一次.你有clearTimeout,setTimeout所以它非常类似于setInterval

function playSound(timeLeft){
   var sendDataTimeout = function(){
      alert('OK');
   }
   setTimeout(sendDataTimeout, timeLeft);
}
Run Code Online (Sandbox Code Playgroud)

您不必再使用clearTimeout了.但是它的存在与clearInterval的工作原理相同.