我试图在五分钟后触发一个事件。我正在使用以下代码:
setTimeout(tweet(name, type), 5 * 60 * 1000);
过了一会儿就开始了,但不到五分钟(通常是两分钟左右,但有时是瞬间的。)。我究竟做错了什么?(我也尝试将时间设置为300000
,同样的问题。
我试图在五分钟后触发一个事件。我正在使用以下代码:
setTimeout(tweet(name, type), 5 * 60 * 1000);
过了一会儿就开始了,但不到五分钟(通常是两分钟左右,但有时是瞬间的。)。我究竟做错了什么?(我也尝试将时间设置为300000
,同样的问题。
您正在tweet
立即调用并将其返回值传递给setTimeout
.
您需要将函数传递给setTimeout
. 您没有包含 的代码tweet
,但我假设它不是return
函数。
setTimeout(function () { tweet(name, type); }, 5 * 60 * 1000);
Quentin 的解决方案有效,但您也可以使用这种形式:
setTimeout(tweet(name, type), 5 * 60 * 1000);
function tweet(name, type) {
return function(name, type) {
};
}
当您想在闭包中保留一些值时,它有一些用例。