3

5 分後にイベントを発生させようとしています。私は次のコードを使用しています:

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

しばらくすると発火します、5 分近くかかりません (通常は 2 分程度ですが、すぐに発火することもあります)。私は何を間違っていますか?(代わりに時間を設定しようとしましたが300000、同じ問題です。

4

2 に答える 2

17

すぐに呼び出しtweetて、その戻り値を に渡していますsetTimeout

に関数を渡す必要がありますsetTimeout。のコードは含まれてtweetいませんreturnが、関数ではないと仮定します。

setTimeout(function () { tweet(name, type); }, 5 * 60 * 1000);
于 2012-06-08T14:14:23.467 に答える
2

Quentin のソリューションは機能しますが、次の形式を使用することもできます。

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

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

いくつかの値をクロージャーに保持したい場合、いくつかのユースケースがあります。

于 2012-12-09T07:18:56.713 に答える