Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

355
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!