nodejs node nexttick loop javascript node.js setinterval

javascript - nexttick - Node.js se bloquea cuando se usa un intervalo largo en setinterval



settimeout javascript (2)

function createSasTokenTimer() { console.log("Hello"); } setInterval(createSasTokenTimer, 3000000);

Ejecuto este código y después de 50 minutos recibo el siguiente error:

Hello timers.js:265 callback.apply(this, args); ^ TypeError: Cannot read property ''apply'' of undefined at wrapper [as _onTimeout] (timers.js:265:13) at Timer.listOnTimeout (timers.js:110:15)

Cuando el intervalo de tiempo es más corto ( 2000000 por ejemplo), todo funciona bien.

¿Es este un error en Node.js?

Actualizar:

SO: Windows , Node.js versión: 0.12.4

Cuando ejecuto solo el código anterior, funciona bien, pero se rompe cuando está dentro de mi aplicación, no puedo señalar qué parte de mi código lo rompe porque es muy largo y nada parece "sospechoso". De todos modos, cuando el intervalo es más corto funciona como escribí.


En lugar de llamar a la función directamente, dale dentro de una devolución de llamada.

function createSasTokenTimer() { console.log("Hello"); } setInterval(function(){ createSasTokenTimer(); }, 3000000);

Usando este método, está pasando una función anónima a setInterval. Llamará a esta función una vez por intervalo, que es de 3000000 milisegundos en este ejemplo.

Por ahora, probablemente puedes usar este código. Para una mayor comprensión, sugiero investigar funciones anónimas y cierres.

Espero que esto ayude.


Para mí, esto parece un modelo no estándar que está utilizando en lugar del modo nativo. Mire global.process.moduleLoadList debería tener las entradas

''NativeModule timers'', ''Binding timer_wrap'',

Y verifique su código de que no está importando Timers de terceros.js