← エラー辞典に戻る

JavaScript

⏱️ setInterval が止まらない

clearInterval を呼んでいない

😰 こんな症状

setInterval で始めた処理が止まらない。タイマー処理を制御したいときに起きやすいよ。

🔍 原因

setIntervalの戻り値(タイマーID)を変数に保存していない、またはclearIntervalを呼んでいないよ。setIntervalは指定した間隔で永遠に実行し続けるから、明示的に停止しないと止まらないんだ。IDを保存しないとclearIntervalで指定できないよ。

❌ エラーが起きるコード

setInterval(() => update(), 1000);
// ID を保存していない

✅ 直し方

1. const id = setInterval(関数, 1000);でIDを変数に保存する。 2. 停止したいタイミングでclearInterval(id);を呼ぶ。 3. コンポーネントのアンマウント時やページ離脱時にもclearIntervalする。 4. setTimeoutで再帰的に呼ぶ方が制御しやすい場合もあるよ。

✅ 修正後のコード

const id = setInterval(() => update(), 1000);
clearInterval(id);

この解決法は役立ちましたか?

🔗 関連するエラー

🔗 別カテゴリの関連エラー

📖 この問題を学べるレッスン

JavaScriptコースで基礎から学ぶ →

📝 関連ブログ記事

📖 関連する用語

🚀 JavaScriptコースで基礎を学ぼう!

エラーの原因を根本から理解するには、基礎を体系的に学ぶのが近道です。完全無料・登録不要。

JavaScriptコースを始める →

❓ 関連するQ&A