reiniciar node detener como javascript recursion setinterval

javascript - node - Recursive setInterval() se ejecuta continuamente



setinterval clearinterval javascript (4)

Cambiar esta línea:

setInterval(five(), 5000);

Me gusta esto:

setInterval(five, 5000);

Pero parece que lo que realmente necesitas es:

setTimeout(five, 5000);

Entonces su código se verá así:

function five() { console.log("five"); setTimeout(five, 5000); } five();

Estoy intentando ejecutar una función cada 5 segundos usando JavaScript usando una función setInterval recursiva.

El siguiente código simplemente inicia "inicia" lo más rápido posible y luego bloquea el navegador. ¿Por qué esto no se ejecuta cada 5 segundos?

function five() { console.log("five"); setInterval(five(), 5000); } five();


La razón por la que falla es porque llamas a la función cinco . En lugar de eso, debes pasarlo como parámetro.

setInterval(five, 5000);


Llamas a five inmediato, en lugar de simplemente pasarlo :

function five () { console.log("five"); } setInterval(five, 5000); /* ^ */


No use setInterval de esta manera. Use setTimeout. Al invocar setInterval, crea un temporizador ÚNICO cada vez que se llama a la función. SetTimeout creará un temporizador que finaliza y luego crea un nuevo temporizador.

También debe cambiar la forma en que hace referencia a five . five() ejecuta la función de inmediato. Solo five pasa una referencia de función, hazlo como ves a continuación.

function five() { console.log("five"); setTimeout(five, 5000); } five();

Por supuesto, siempre puede pasar la llamada a la función como una cadena para ser evaluada:

setTimeout("five()", 5000); // note the quotes

Pero esto generalmente se considera una mala práctica.