Ktoś mi powiedział, że kiedy używasz setTimeout, musisz to wyczyścić clearTimeout. Potrafię zrozumieć, zanim upłynie limit czasu, ale po co? Czy to nieprawda?
Odpowiedzi:
To nieprawda - nie ma nic złego w wyczyszczeniu limitu czasu po jego zakończeniu, ale nie jest to konieczne.
Zgodnie ze specyfikacją :
Jeśli uchwyt nie zidentyfikuje pozycji na liście aktywnych liczników czasu obiektu WindowOrWorkerGlobalScope, na którym wywołano [clearTimeout], metoda nic nie robi.
Innymi słowy, to nie jest operacja; nic się nie dzieje i nie zostanie wyrzucony żaden błąd.
W rzeczywistości nie musisz go używać clearTimeout, używasz go tylko wtedy, gdy chcesz anulować limit czasu, który został już ustawiony, zanim to się stanie.
Jest to zazwyczaj bardziej praktyczny w użyciu clearIntervalz setIntervalponieważ setIntervalzazwyczaj biegnie w nieskończoność.
Nie ma powodu, aby go usuwać po zakończeniu. Twój przyjaciel mógł się pomylić setInterval.