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

222
Vistas
Nodo js Emisor de eventos de proceso secundario frente a devoluciones de llamada

¿Hay alguna diferencia entre adjuntar devoluciones de llamada o detectores de eventos para procesos secundarios en nodejs. me gusta -

 const execute = require('child-process').exec; const process = execute('ping -n 1 www.google.com'); // or ping -c 1 www.google.com for mac process.stdout.on('data', data => { console.log(data) })

En el código anterior, estoy usando un detector de eventos para la salida y obtengo datos de salida estándar en Windows, pero no puedo obtener la salida en macOS. Pero si uso la devolución de llamada como -

 const execute = require('child-process').exec; execute('ping -c 1 www.google.com', (error, stdout, stderr) => { console.log(stdout); })

Estoy obteniendo los datos de salida tanto en Windows como en Mac. ¿Hay alguna diferencia al usar la devolución de llamada o los detectores de eventos (ambos son asíncronos)?

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

0

La callback de llamada se llama cuando se completa la ejecución de esa tarea asíncrona. Sin embargo, los eventos deben dispararse en función del observador. Cada evento tiene oyentes y cuando se activa un evento, su función de oyente relacionada inicia las ejecuciones.

  • Puede adjuntar varios oyentes al mismo evento. Las devoluciones de llamada son notificaciones uno a uno, eventos, uno a muchos.
  • No puede devolver valor del evento. Los eventos son mensajes unidireccionales. A menudo, las devoluciones de llamada siguen la firma (error, data1, data2, data3, ...) porque una sola devolución de llamada es responsable del flujo de datos normal y de error (y las bibliotecas asíncronas generalmente esperan este comportamiento)
  • La API basada en EventEmitter, por otro lado, tiende a separar los mensajes de error y los que no lo son.
  • El evento "error" es especial en el emisor de eventos: si no hay un oyente para él, EventEmitter lanza una excepción. Con las devoluciones de llamada, es su responsabilidad verificar el primer parámetro de error.

Puede consultar este enlace en stackoverflow para ver la diferencia entre la devolución de llamada y los eventos.

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