Alguien me dijo que cuando lo uses setTimeout
debes borrarlo con clearTimeout
. Puedo entender antes de que se agote el tiempo de espera, pero ¿por qué después? ¿O es falso?
fuente
Alguien me dijo que cuando lo uses setTimeout
debes borrarlo con clearTimeout
. Puedo entender antes de que se agote el tiempo de espera, pero ¿por qué después? ¿O es falso?
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.
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 clearInterval
con setInterval
porque setInterval
por lo general se extiende indefinidamente.
clearTimeout
solo 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. clearInterval
es mucho más necesario para evitar que continúe indefinidamente.
No hay motivo para borrarlo una vez completado. Es posible que tu amigo se haya confundido con setInterval
.
No, setTimeout
deja de funcionar después de 1 llamada. setInterval
Sin embargo, para detenerlo , debe usar clearInterval
. Si crea un bucle sin fin, setTimeout
entonces clearTimeout
podría usarse.