Al usar setTimeout, ¿tiene que borrarTimeout?

85

Alguien me dijo que cuando lo uses setTimeoutdebes borrarlo con clearTimeout. Puedo entender antes de que se agote el tiempo de espera, pero ¿por qué después? ¿O es falso?

NebulaFox
fuente

Respuestas:

86

No es cierto; no hay nada de malo en borrar un tiempo de espera después de que haya finalizado, pero no es necesario.

Según la especificación :

Si handle no identifica una entrada en la lista de temporizadores activos del objeto WindowOrWorkerGlobalScope en el que se invocó [clearTimeout], el método no hace nada.

En otras palabras, no es una operación; no pasa nada y no se producirá ningún error.

jmar777
fuente
50

En realidad, no necesita usarlo clearTimeout, solo lo usa si desea cancelar el tiempo de espera que ya estableció antes de que suceda.

Por lo general es más práctico utilizar clearIntervalcon setIntervalporque setIntervalpor lo general se extiende indefinidamente.

Fantasma de Madara
fuente
15

clearTimeoutsolo es necesario para cancelar un tiempo de espera. Después de que se activa el tiempo de espera, se puede dejar solo de forma segura. clearIntervales mucho más necesario para evitar que continúe indefinidamente.

gddc
fuente
10

No hay motivo para borrarlo una vez completado. Es posible que tu amigo se haya confundido con setInterval.

Blazemonger
fuente
10

No, setTimeoutdeja de funcionar después de 1 llamada. setIntervalSin embargo, para detenerlo , debe usar clearInterval. Si crea un bucle sin fin, setTimeoutentonces clearTimeoutpodría usarse.

Trevor
fuente