将setTimeout()用于大值

时间:2012-06-08 14:13:05

标签: javascript

五分钟后,我正试图让事件发生。我正在使用以下代码:

setTimeout(tweet(name, type), 5 * 60 * 1000);

一段时间后开火,但不是近五分钟(通常是两分钟左右,但有时候是瞬间。)。我究竟做错了什么? (我也尝试将时间设置为300000,而不是同样的问题。

2 个答案:

答案 0 :(得分:14)

您立即致电tweet并将其返回值传递给setTimeout

您需要将函数传递给setTimeout。您没有包含tweet的代码,但我会假设它不是return函数。

setTimeout(function () { tweet(name, type); }, 5 * 60 * 1000);

答案 1 :(得分:2)

Quentin的解决方案有效,但您也可以使用此表单:

setTimeout(tweet(name, type), 5 * 60 * 1000);

function tweet(name, type) {
    return function(name, type) {
    };
}

当你想在闭包中保留一些值时,它有一些用例。