SetTimeout'u kullanırkenTimeout'u temizlemeniz gerekir mi?


88

Biri bana, kullandığın setTimeoutzaman onu temizlemen gerektiğini söyledi clearTimeout. Zaman aşımı bitmeden anlayabiliyorum, ama neden sonra? Yoksa doğru değil mi?

Yanıtlar:


87

Bu doğru değil - zaman aşımını bitirdikten sonra temizlemenin bir zararı yoktur, ancak gerekli değildir.

Başına şartname :

Tutamaç, [clearTimeout] çağrılan WindowOrWorkerGlobalScope nesnesinin etkin zamanlayıcıları listesindeki bir girişi tanımlamazsa, yöntem hiçbir şey yapmaz.

Başka bir deyişle, işlem yok; hiçbir şey olmaz ve hiçbir hata atılmaz.


52

Aslında kullanmanıza gerek yoktur clearTimeout, yalnızca önceden ayarladığınız zaman aşımını iptal etmek istiyorsanız kullanırsınız.

Genellikle kullanmak daha pratik clearIntervalolan setInterval, çünkü setIntervalgenellikle süresiz çalışır.


16

clearTimeoutyalnızca bir zaman aşımını iptal etmek için gereklidir. Zaman aşımı tetiklendikten sonra, güvenle yalnız bırakılabilir. clearIntervalsüresiz olarak devam etmesini önlemek için çok daha tipik olarak gereklidir.


10

Tamamlandıktan sonra temizlemek için bir neden yok. Arkadaşınızın kafası karışmış olabilir setInterval.


10

Hayır, setTimeout1 aramadan sonra çalışmayı durdurur. setIntervalAncak durdurmak için kullanmalısınız clearInterval. Sonsuz bir döngü oluşturursanız setTimeouto clearTimeoutzaman kullanılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.