五分钟后,我正试图让事件发生。我正在使用以下代码:
setTimeout(tweet(name, type), 5 * 60 * 1000);
一段时间后开火,但不是近五分钟(通常是两分钟左右,但有时候是瞬间。)。我究竟做错了什么? (我也尝试将时间设置为300000
,而不是同样的问题。
答案 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) {
};
}
当你想在闭包中保留一些值时,它有一些用例。