¿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)?
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 consultar este enlace en stackoverflow para ver la diferencia entre la devolución de llamada y los eventos.