问题是当我第一次使用此函数时(第二次间隔时间也不错),第二次也可以,但是第三次​​它不起作用,因为计时器是第二次的计时器,但是变量计时器已更改。

希望有人知道如何解决它。

function SetTimer()
{

    clearInterval(AutoMsgTimer);

    Timer = prompt("[AutoMsg] Timer de l'auto-messages en secondes :");

    TimerSec = Timer;
    Timer = Timer*1000;

    var AutoMsgTimer = setInterval(

        function AutoMsg()
        {
            if(AutoMsgStatus == true)
            {
                API.sendChat("/me " + AutoMsgText);
            }
        }

    , Timer);

}


对不起,我的英语我是法语。

最佳答案

这样做,而不是每次调用SetTimer()时都重新声明变量。

var AutoMsgTimer = SetTimer();  //Make sure you call the SetTimer this way, store the return value...

function SetTimer() {
  if (AutoMsgTimer ){
    clearInterval(AutoMsgTimer);
  }
  Timer = prompt("[AutoMsg] Timer de l'auto-messages en secondes :");
  TimerSec = Timer;
  Timer = Timer*1000;
  var interval = setInterval(
    function()   {
      if(AutoMsgStatus == true)
      {
        API.sendChat("/me " + AutoMsgText);
      }
  }, Timer);
 return interval;
}

关于javascript - setInterval()变量更改错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24872873/

10-09 20:26