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?
fuente
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?
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 clearIntervalcon setIntervalporque setIntervalpor lo general se extiende indefinidamente.
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.
No hay motivo para borrarlo una vez completado. Es posible que tu amigo se haya confundido con setInterval.
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.