JavaScript で setTimeout を利用すると、指定された遅延を無視して関数が即座に実行されるという問題が発生する可能性があります。 。この異常は、一般的な落とし穴に起因する可能性があります。
この問題は、次のように setTimeout 引数内で関数を呼び出すときに発生します。
setTimeout(testfunction(), 2000);
この構文はすぐに testfunction() を呼び出します。 setTimeout は、指定された遅延の後にその関数呼び出しの 戻り値 が実行されるようにスケジュールします。その結果、関数は即座に実行され、タイマーは冗長になります。
この問題を解決するには、関数を呼び出さずに、関数自体を引数として渡す必要があります。
setTimeout(testFunction, 2000);
testFunction の後に括弧がないことに注意してください。このアプローチにより、遅延の経過後に関数の実行が確実にスケジュールされ、意図したとおりに動作できるようになります。
以上が「setTimeout」が関数をすぐに実行するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。