Jemand hat mir gesagt, dass Sie setTimeout
es löschen müssen , wenn Sie es verwenden clearTimeout
. Ich kann verstehen, bevor das Timeout abläuft, aber warum danach? Oder ist es falsch?
quelle
Jemand hat mir gesagt, dass Sie setTimeout
es löschen müssen , wenn Sie es verwenden clearTimeout
. Ich kann verstehen, bevor das Timeout abläuft, aber warum danach? Oder ist es falsch?
Es ist nicht wahr - es schadet nicht, eine Zeitüberschreitung nach Beendigung zu löschen, aber es ist nicht notwendig.
Gemäß der Spezifikation :
Wenn handle keinen Eintrag in der Liste der aktiven Timer des WindowOrWorkerGlobalScope-Objekts identifiziert, für das [clearTimeout] aufgerufen wurde, führt die Methode nichts aus.
Mit anderen Worten, es ist ein No-Op; Es passiert nichts und es wird kein Fehler ausgegeben.
Sie müssen es nicht verwenden clearTimeout
, sondern nur, wenn Sie das bereits festgelegte Zeitlimit abbrechen möchten, bevor es auftritt.
Es ist in der Regel mehr praktisch in der Anwendung clearInterval
mit , setInterval
weil setInterval
in der Regel auf unbestimmte Zeit läuft.
clearTimeout
ist nur erforderlich, um eine Zeitüberschreitung abzubrechen. Nach dem Timeout kann es sicher in Ruhe gelassen werden. clearInterval
ist viel typischer notwendig, um zu verhindern, dass es auf unbestimmte Zeit fortgesetzt wird.
Kein Grund, es zu löschen, nachdem es abgeschlossen ist. Ihr Freund könnte mit verwechselt worden sein setInterval
.
Nein, setTimeout
hört nach 1 Anruf auf zu laufen. Um jedoch zu stoppen setInterval
, müssen Sie verwenden clearInterval
. Wenn Sie eine Endlosschleife von setTimeout
dann erstellen, clearTimeout
könnte verwendet werden.