javascript - setInterval() 变量更改错误

标签 javascript

问题是,当我第一次使用这个函数时,它工作正常(间隔时间很好),第二次也是如此,但第三次它不起作用,因为计时器是第二次的计时器,但是变量Timer已经改变了。

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

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/

相关文章:

javascript - 适用于 ASP.NET MVC 的 Google Maps JavaScript API 无法正常工作

javascript - 在一个组件中动态显示下拉列表

php - 如何在 PHP 或 Javascript 中设置技术测验的超时时间

javascript - 同时打开两个jquery日期选择器

javascript - 使用正则表达式拆分复杂的字符串

javascript - wordpress 插件适用于本地主机,但不适用于远程服务器

javascript - 如何在 Dart 中运行 JavaScript?

javascript - 灵活的 JavaScript 函数(适用于 MongoDB)

javascript - 平移-旋转 : SVG not rotating around center even though translated:

javascript - << 在 Javascript 中是什么意思