Temporizador setTimeout

La función setTimeout permite ejecutar una función o un bloque de código después de que haya transcurrido un periodo de tiempo específico. En términos sencillos, funciona como un temporizador o una alarma: le dices qué quieres que haga y cuánto tiempo debe esperar antes de hacerlo.

Sintaxis:

let planificado = setTimeout(funcionAEjecutar, milisegundos);

Cada 1000ms equivale a 1 segundo.

Detener el temporizador

La variable a la cual se asigna el temporizador, guardará un número entero único (un ID). Este identificador es muy importante porque sirve como una "referencia" del temporizador que acabas de programar. Mucha gente utiliza el setTimeout de forma anónima, como en el ejemplo del juego de memoria, pero si guardas este ID en una variable, podrás usarlo posteriormente para cancelar el temporizador antes de que se ejecute.

¿Cómo cancelar el temporizador?

Para frenarlo, usamos la instrucción clearTimeout.

clearTimeout(variable_que_guarda_el_temporizador);

A tener en cuenta:

  1. El tiempo que se especifica en setTimeout no es un tiempo garantizado de ejecución, sino un tiempo mínimo de espera. En conseciencia, si se configuras un retraso de 3000 milisegundos (3 segundos), pero el procesador está muy ocupado realizando un cálculo pesado en el segundo 3, tu función podría tardar 3.5 o 4 segundos en ejecutarse.
  2. Identificador único: Siempre que creas un setTimeout, la función crea un identificador interno. Es por esto que se guarda en una variable: para poder detenerlo en cualquier momento antes de su ejecución, con clearTimeout.

Ejemplo: Juego de Memoria