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

107
Vistas
node.js elimina el detector de eventos anidado dentro de un detector de eventos
const globalInput = new Promise(resolve => { function callback(msg) { client.off('message', (msg) => callback(msg)); resolve(msg.content); } client.on('message', (msg) => callback(msg)); });

Aquí he usado el emisor de eventos de mensajes para devolver el contenido del mensaje en una promesa resuelta, y he usado client.off. Sin embargo, incluso después de esto, sigo recibiendo los 11 detectores de eventos adjuntos a la advertencia del cliente. ¿Dónde me estoy equivocando? Y sí, esta es la única variable que realmente adjunta el emisor de eventos.

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

0

.off() requiere que le pases la referencia de función idéntica (no una función diferente que sea una copia idéntica). Por lo tanto, puede corregir su código haciendo que el primer controlador de mensajes sea una función local separada a la que luego puede referirse tanto en .on() como .off() :

 const globalInput = new Promise(resolve => { function handler(msg) { client.off('message', handler); resolve(msg.content); } client.on('message', handler); });

FYI, también puede usar .once() y se encargará de la eliminación automáticamente.

 const globalInput = new Promise(resolve => { client.once('message', msg => { resolve(msg.content); }); });
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