1. ホーム
  2. javascript

[解決済み] タイマーがまだ作動しているかどうかを確認できますか?

2023-06-16 18:30:10

質問

簡単な質問ですが、答えが見つからないようです。一度 setTimeout が設定された後、それがまだ設定されているかどうかを確認する方法はありますか?

if (!Timer)
{
    Timer = setTimeout(DoThis,60000);
}

私の知る限りでは、あなたが clearTimeout を実行すると、変数は最後の値のままになります。A console.log を見ただけでは Timer を見ると、タイムアウトが設定されていても解除されていても、'12'であることがわかります。この変数をNULLにするか、他の変数をブール値として使用して、このタイマーを設定したことを示す必要があるのでしょうか?きっと、タイムアウトがまだ続いているかどうかを確認するだけの方法があるのでは...?残り時間を知る必要はなく、まだ実行中かどうかだけでいいんです。

どのように解決するのですか?

タイマーを開始または停止する以外に、タイマーと対話する方法はありません。 私は通常、タイマーが動作していないことを示すフラグを使用するのではなく、タイムアウトハンドラ内のタイマー変数を NULL にします。 この点については W3Schools に、タイマーがどのように機能するかについての素晴らしい説明があります。彼らの例では、フラグ変数を使用しています。

あなたが見ている値は ハンドル を現在のタイマーに追加し、タイマーをクリア(停止)するときに使用します。