ホームページ >ウェブフロントエンド >jsチュートリアル >`setInterval` で呼び出された関数が 1 回だけ実行されるようにするにはどうすればよいですか?

`setInterval` で呼び出された関数が 1 回だけ実行されるようにするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-04 01:54:11363ブラウズ

How Can I Ensure a Function Called with `setInterval` Executes Only Once?

setInterval と clearInterval を使用したスケジュールされた関数の管理

次のコード部分を考えてみましょう。

function doKeyDown(event) {
    switch (event.keyCode) {
        case 32:
            /* Space bar was pressed */
            if (x == 4) {
                setInterval(drawAll, 20);
            }
            else {
                setInterval(drawAll, 20);
                x += dx;
            }
            break;
    }
}

目標は次のとおりです。繰り返し呼び出すループを作成せずに、drawAll 関数を 1 回だけ呼び出します。 it.

clearInterval を使用して定期的な実行を停止する

setInterval は、指定された関数を定期的に呼び出す繰り返しタイマーを確立します。実行を停止するには、clearInterval を利用できます。その仕組みは次のとおりです。

var handle = setInterval(drawAll, 20);

// When you want to stop it:
clearInterval(handle);
handle = 0; // Indication of an uncleared interval

ブラウザでは、ハンドルはゼロ以外の数値であることが保証されています。したがって、ハンドル = 0 の設定は、間隔がクリアされたことを示す便利なフラグとして機能します。

ワンタイム関数呼び出しのスケジュール

目的が次の場合関数を 1 回だけ実行する場合は、代わりに setTimeout の使用を検討してください。この関数は、指定された時間間隔の後に関数が呼び出されるようにスケジュールしますが、その後は関数の起動を継続しません。また、潜在的なキャンセルのハンドルも返します。

setTimeout(drawAll, 20);

以上が`setInterval` で呼び出された関数が 1 回だけ実行されるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。