ホームページ > ウェブフロントエンド > jsチュートリアル > `setTimeout` 関数が遅延後ではなくすぐに実行されるのはなぜですか?

`setTimeout` 関数が遅延後ではなくすぐに実行されるのはなぜですか?

Susan Sarandon
リリース: 2024-12-02 11:36:10
オリジナル
570 人が閲覧しました

Why Does My `setTimeout` Function Execute Immediately Instead of After the Delay?

setTimeout 関数の予期しない即時実行

Web ページの値を定期的に更新してサーバーの負荷を最小限に抑えようとしている開発者が、次のような問題に遭遇しました。 setTimeout() 関数が予期せぬ動作をする問題。指定された遅延後に実行されるのではなく、関数はすぐに実行されます。

提供されたコード スニペットを調べると、

window.onload = function GetUsersNumber() {
    //...
    setTimeout(GetUsersNumber(), 50000);
}
ログイン後にコピー

問題は、setTimeout() 関数の呼び出し方法にあります。 JavaScript では、関数呼び出しは関数名の後の括弧で示されます。ただし、この場合、GetUsersNumber() に続く括弧は、関数を参照として渡すのではなく、ただちに関数を呼び出します。

この問題を修正するには、setTimeout() 呼び出しから括弧を削除し、関数を効果的に渡します。オブジェクト自体:

setTimeout(GetUsersNumber, 50000);
ログイン後にコピー

これにより、setTimeout() は、指定された遅延の後に実行される関数を正しくスケジュールできるようになり、意図した遅延を考慮に入れることができます。サーバーに負荷をかけずに Web ページの値を更新します。

以上が`setTimeout` 関数が遅延後ではなくすぐに実行されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート