const EventEmitter = require('events');
// Enable capture rejections (Node.js 12.16.0+)
const myEmitter = new EventEmitter({ captureRejections: true });
// OR set it globally
// EventEmitter.captureRejections = true;
// Event handler that returns a Promise
myEmitter.on('async-operation', async () => {
// This rejected promise will be captured and converted to an 'error' event
throw new Error('Async operation failed');
});
// Error handler
myEmitter.on('error', (err) => {
console.error('Caught error:', err.message);
});
// Trigger the event
myEmitter.emit('async-operation');