setInterval コールバック関数の一度実行: 解決済み
このシナリオでは、カウンターは無期限に実行されることを目的としています。簡略化したバージョンを見てみましょう:
function timer() { console.log("timer!"); } window.setInterval(timer(), 1000);
ただし、この実装では予期しない結果が生じます。「タイマー」メッセージは 1 回しか表示されません。
問題は setInterval の最初の引数にあります。関数参照 (タイマー) を提供する代わりに、コードは誤って関数 (timer()) を実行しています。これは次のように修正できます:
window.setInterval(timer, 1000);
または、より簡潔な (ただし読みにくい) 構文を使用することもできます:
window.setInterval(function() { console.log("timer!"); }, 1000);
これらの修正を実装することで、カウンターが実行されるようになります。永続的に、意図された機能を実現します。
以上がsetInterval コールバック関数が 1 回しか実行されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。