【问题标题】:Set Time out by passing a parameter通过传递参数设置超时
【发布时间】:2011-05-16 09:57:03
【问题描述】:

我目前在使用 SetTimeOut 函数时遇到问题。

问题是我需要通过传递参数来使用它,但它不起作用...... 这是代码:

function RSSChecker(dMObject)
{
    if (dMObject) 
    {
        alert('Refresh');
        window.setTimeout(RSSChecker(dMObject), 10000);
    }
}

有什么想法吗?

【问题讨论】:

  • 你有 RSSChecker('blabla');在哪里?
  • w3schools.com/js/js_timing.asp 也检查一下这个页面应该会刷新你的记忆 :)
  • 你的意图是递归调用这个函数吗?
  • @Val - 请不要引用 w3schools.com - 他们的时间示例是垃圾
  • 对于初学者来说已经足够好了,所以他应该用他的直觉来了解更多关于它的信息,或者谷歌:)

标签: javascript jquery timeout


【解决方案1】:

另一种方法是将内部调用包装在调用您的函数的匿名函数中。这样你就有了:-

window.setTimeout(function() { RSSChecker(dmObject); }, 10000);

【讨论】:

  • 如果 setTimeout 在循环中执行,这不会将正确的变量保留在正确的范围内。 (也许不是这样我就闭嘴=)。)
  • 是的,在这种情况下,dmObject 闭包范围会出现问题,但示例代码没有循环,因此它可以在这里工作。但是,如果有一个循环,将 window.setTimeout 包装在另一个匿名函数中就可以了,但这会使这段代码过于复杂 IMO
  • 是的。都是真的。同意。看到 +2 了吗?
  • 谢谢!我最近被“循环关闭”的事情咬了,所以把它提出来没有任何害处
猜你喜欢
  • 1970-01-01
  • 2017-12-18
  • 2010-09-13
  • 2015-03-01
  • 1970-01-01
  • 2022-01-25
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多