每50毫秒只调用输入函数f的函数

时间:2018-01-08 01:35:33

标签: javascript jquery html css function

  • 我是js的新手。
  • 我正在尝试创建一个每50毫秒只调用输入函数f的函数。
  • 使用setTimeout在小提琴中编写代码。
  • 但并没有完全按我的意愿行事
  • 你能告诉我如何解决它。
  • 提供以下代码

https://jsfiddle.net/1pqznbgt/

function callSeconds(f){
    setTimeout(function(){
        alert("testing");
    }, 500)
}

3 个答案:

答案 0 :(得分:1)

  • 您正在寻找setInterval而不是setTimeoutsetTimeout将执行一次,setInterval将每隔一段时间执行一次)
  • 样本中的500表示500毫秒而不是50毫秒
  • 您需要拨打f而不是匿名函数,因此:

您正在寻找的是:

function callSeconds(f){
    setInterval(f, 50);
}

答案 1 :(得分:0)

我看到的问题是每次调用alert()时都会停止执行JavaScript,并且每个浏览器都可以以不同方式实现警报。 setTimeout()只执行一次所以如果你调用该函数它将等待500ms并发出警告如果你想要一段代码连续运行你必须使用setInterval()函数,但你仍然有浏览器选择的问题处理alert()函数,通常一个警报暂停执行当前代码,这对我不知道的定时执行函数有什么影响。我会尝试执行不会暂停或停止执行脚本的内容。我还注意到在代码段中你没有调用会调用setTimeout函数的父函数。

答案 2 :(得分:-1)

你可以在这里做两件事之一。 首先,不要使用setTimeout。 而是使用setInterval (f,50)

或以递归方式调用函数:

function foo (f){
    f();
    setTimeout (foo,50);
}