Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

356
Vistas
Node.js: cómo detectar mensajes de advertencia programáticamente

En algunas ocasiones específicas, si el programador no tiene cuidado, Node.js genera la siguiente advertencia: (node:11548) MaxListenersExceededWarning: Possible EventEmitter memory leak detected , pero el proceso continúa ejecutándose y este mensaje se pierde en la salida de la consola durante la inicialización , ¿hay alguna forma en que el proceso de inicialización pueda detectar este mensaje de advertencia para no continuar con la inicialización si ocurre? Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Ese mensaje específico está allí porque, a menudo, cuando excede el nivel de advertencia predeterminado para la cantidad de oyentes de un eventEmitter específico, esto es una señal de que hay algún tipo de "fuga" de oyentes donde está agregando oyentes de una manera que se acumulan arriba (no usarlos correctamente). El nivel predeterminado para esta advertencia es 10.

Por lo tanto, generalmente vale la pena depurar la causa de esta advertencia y comprender si es una advertencia legítima (una señal de un problema real) o una advertencia falsa (no causada por un problema real).

Si sabe de qué eventEmitter proviene y se ha convencido de que no hay un problema real aquí, entonces puede aumentar el límite que causa la advertencia con:

 emitter.setMaxListeners(30); // pick whatever limit is appropriate

Puede ver el documento para ese método aquí .


Puede captar esta advertencia en particular con este código :

 process.on('warning', warningInfo => { // examine the warning here and decide what to do console.log(warningInfo); });

Puede demostrar el problema con este sencillo programa node.js:

 const EventEmitter = require('events'); const e = new EventEmitter(); // create one more listener for the same event than the default // warning limit for (let i = 0; i < 11; i++) { e.on("greeting", () => { console.log("greeting"); }); } // listen for the warning process.on('warning', info => { console.log(info); });
about 4 years ago · Juan Pablo Isaza Denunciar

0

Una de las formas de detectar errores es siempre try and catch .

Siempre puede detectar excepciones no detectadas con node.js haciendo

 process.on('uncaughtException', err => { console.error('There was an uncaught error', err) process.exit(1) //mandatory (as per the Node.js docs) })
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda