【问题标题】:Problems with setInterval function JavaScriptsetInterval 函数 JavaScript 的问题
【发布时间】:2018-12-06 10:35:47
【问题描述】:

我在 JavaScript 中使用 setInterval 函数,但我每秒从 console.log('NOW') 获得大约 100 次重复。 setTimeout 也有同样的效果。

我的错误在哪里? 我想每 15 分钟调用一次函数“function1”。

JavaScript 代码:

   function1() {
      console.log('NOW');
      .
      .
      .
      });
    },
    refreshData() {
      this.function1();
      setInterval(this.refreshData(), 900000);
    },

提前致谢!

【问题讨论】:

    标签: javascript function settimeout setinterval repeat


    【解决方案1】:

    你正在调用函数

    setInterval(this.refreshData(), 900000);
    

    而不是传递对函数的引用

    setInterval(this.refreshData, 900000);
    

    【讨论】:

      【解决方案2】:

      像这样包装你的函数调用:

          var self = this;
          refreshData() {
            this.function1();
            setInterval(function(){  self.refreshData() }, 900000);
          }
      

      【讨论】:

        【解决方案3】:

        有两种可能的方法:

        在提供的代码中你应该使用setTimeout,因为你手动重启函数:

        function function1() {
          console.log('NOW');
        }
        
        function refreshData() {
          this.function1();
          setTimeout(this.refreshData, 3000);
        }
        
        refreshData();

        或者简单地将现有逻辑替换为setInterval,它应该可以完成您手动实现的所有工作:

        function function1() {
          console.log('NOW');
        }
        
        this.function1();
        setInterval(this.function1, 3000);

        【讨论】:

          猜你喜欢
          • 2015-03-07
          • 1970-01-01
          • 2012-07-05
          • 1970-01-01
          • 1970-01-01
          • 2014-01-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多