setTimeoutを使用する場合、clearTimeoutを実行する必要がありますか?


88

誰かが私にあなたが使うときあなたはsetTimeoutそれをでクリアしなければならないと言ったclearTimeout。タイムアウトが切れる前に理解できますが、なぜ後ですか?それともそれは真実ではありませんか?

回答:


87

それは真実ではありません-タイムアウトが終了した後にタイムアウトをクリアしても害はありませんが、必須ではありません。

毎の仕様

[clearTimeout]が呼び出されたWindowOrWorkerGlobalScopeオブジェクトのアクティブタイマーのリストでハンドルがエントリを識別しない場合、メソッドは何もしません。

言い換えれば、それはノーオペレーションです。何も起こらず、エラーはスローされません。


52

実際に使用する必要はありませんclearTimeout。設定したタイムアウトが発生する前にキャンセルする場合にのみ使用してください。

通常は無期限に実行さclearIntervalれるsetIntervalためsetInterval、通常は一緒に使用する方が実用的です。


16

clearTimeoutタイムアウトをキャンセルするためにのみ必要です。タイムアウトが発生した後は、そのままにしておくことができます。 clearIntervalそれが無期限に続くのを防ぐために、はるかに一般的に必要です。


10

完了後にクリアする理由はありません。あなたの友人はと混同されているかもしれませんsetInterval


10

いいえ、setTimeout1回の呼び出しで実行を停止します。setIntervalただし、停止するには、を使用する必要がありますclearInterval。の無限ループを作成する場合はsetTimeoutclearTimeoutを使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.