【问题标题】:Javascript: Call a function after specific time periodJavascript:在特定时间段后调用函数
【发布时间】:2012-08-07 17:18:05
【问题描述】:

在 JavaScript 中,如何在特定时间间隔后调用函数?

这是我要运行的函数:

function FetchData() {
}

【问题讨论】:

  • setTimeout()? setInterval()?

标签: javascript function timer


【解决方案1】:

1000毫秒后执行函数FetchData()一次

setTimeout( function() { FetchData(); }, 1000);

每1000毫秒重复执行函数FetchData()

setInterval( FetchData, 1000);

【讨论】:

  • 我猜在“setInterval()”的情况下,函数名称的圆括号不应该出现,即“FetchData”,因为它只触发一次函数。 setInterval(FetchData,1000) 似乎更有效。我在 chrome 中测试过。
  • 这是不正确的。在 setTimeout 中,FetchData() 将立即运行。您需要将其包装在这样的函数中: setTimeout(function() { FetchData(); }, 1000);
【解决方案2】:

您可以在一定的时间间隔后使用JavaScript Timing Events调用函数:

这会每 3 秒显示一次警告框:

setInterval(function(){alert("Hello")},3000);

您可以在 javascript.i.e. 中使用两种时间事件方法

  1. setInterval():一遍又一遍地执行一个函数,在 指定时间间隔
  2. setTimeout() :执行一个函数,一次,等待一个 指定的毫秒数

【讨论】:

  • 请注意,样本并未给出问题的最准确答案(它回答了“我如何调用函数每个特定间隔,而不是特定间隔之后
【解决方案3】:

ECMAScript 6 引入了箭头函数,因此现在 setTimeout() 或 setInterval() 不必像这样:

setTimeout(function() { FetchData(); }, 1000)

相反,您可以使用匿名箭头函数,它看起来更简洁,更不容易混淆:

setTimeout(() => {FetchData();}, 1000)

【讨论】:

  • 你知道什么更干净吗? setTimeout(FetchData, 1000)
  • 好吧,如果您在 FetchData() 中使用任何参数,脚本将立即运行。所以你需要像我上面提到的那样将它包装在函数括号中。
  • OP 从未提及任何参数,他发布的函数也没有任何参数。
  • 没关系,当您学习新事物时,您不想为了更清晰而牺牲实用性,对吗?
【解决方案4】:

超时:

setTimeout(() => {
   console.log('Hello Timeout!')
}, 3000);

间隔:

setInterval(() => {
   console.log('Hello Interval!')
}, 2000);

【讨论】:

    【解决方案5】:

    setTimeout(func, 5000);

    -- 它将在指定的时间后调用名为 func() 的函数。 这里,5000 毫秒,即)5 秒后

    【讨论】:

      【解决方案6】:

      听起来您正在寻找setInterval。就这么简单:

      function FetchData() {
        // do something
      }
      setInterval(FetchData, 60000);
      

      如果您只想调用一次,请使用setTimeout

      【讨论】:

        猜你喜欢
        • 2019-06-28
        • 2011-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多