JavaScript SetTimeout recursivo


Ejemplo

Para repetir una función indefinidamente, se puede llamar a setTimeout forma recursiva:

function repeatingFunc() {
    console.log("It's been 5 seconds. Execute the function again.");
    setTimeout(repeatingFunc, 5000);
}

setTimeout(repeatingFunc, 5000);

A diferencia de setInterval , esto asegura que la función se ejecutará incluso si el tiempo de ejecución de la función es mayor que el retardo especificado. Sin embargo, no garantiza un intervalo regular entre las ejecuciones de funciones. Este comportamiento también varía porque una excepción antes de la llamada recursiva a setTimeout evitará que se repita, mientras que setInterval se repetirá indefinidamente, independientemente de las excepciones.