ホームページ > ウェブフロントエンド > jsチュートリアル > setTimeout() を使用して JavaScript ループに遅延を適切に追加する方法

setTimeout() を使用して JavaScript ループに遅延を適切に追加する方法

Barbara Streisand
リリース: 2024-12-19 11:33:09
オリジナル
433 人が閲覧しました

How to Properly Add Delays to JavaScript Loops Using setTimeout()?

タイムアウトを使用して JavaScript ループに遅延を追加する方法

JavaScript では、setTimeout を使用してループ内に遅延を追加できます。 () 関数。ただし、予期しない結果を避けるために、その動作を理解することが重要です。

次の例を考えてみましょう:

alert('hi');

for (var start = 1; start < 10; start++) {
  setTimeout(function() {
    alert('hello');
  }, 3000);
}
ログイン後にコピー

このコードは、テキスト「hi」を含むアラートを表示し、その後、 3 秒の遅延後に「hello」というテキストを送信します。この遅延は後続の反復で繰り返されます。ただし、実際には、最初の反復のみが意図したとおりに動作します。

この動作の理由は、setTimeout() の非ブロック的な性質にあります。これはタイマーをトリガーしますが、すぐに戻り、3 秒の遅延が発生する前にループの実行を継続できます。これにより、「こんにちは」というアラートが即時に表示され、その後のアラートが遅延なく継続的に表示されます。

目的の効果を達成するには、別のアプローチを使用できます。

var i = 1; // set your counter to 1

function myLoop() { // create a loop function
  setTimeout(function() { // call a 3s setTimeout when the loop is called
    console.log('hello'); // your code here
    i++; // increment the counter
    if (i < 10) { // if the counter < 10, call the loop function
      myLoop(); // .. again which will trigger another 
    } // .. setTimeout()
  }, 3000);
}

myLoop(); // start the loop
ログイン後にコピー

この例では、このアプローチでは、カウンターが初期化され、ループ内でインクリメントされます。ループ関数は setTimeout() 内で呼び出され、各反復の実行前に 3 秒の遅延が確保されます。 setTimeout() のコールバック内でループを維持することで、アラート間の望ましい間隔が実現されます。

以上がsetTimeout() を使用して JavaScript ループに遅延を適切に追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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