El EventEmitter es un módulo de Node.js que facilita la comunicación o intercambio de mensajes entre objetos. Puede ser utilizado para emitir eventos personalizados en las aplicaciones de Node.js.
Para utilizar EventEmitter, puedes seguir estos pasos:
1. En primer lugar, hay que importar el módulo de eventos de Node.js a tu archivo de aplicación utilizando `require()`:
```javascript
var events = require(‘events’);
```
2. Crear un objeto de evento con la clase EventEmitter:
```javascript
var eventEmitter = new events.EventEmitter();
```
3. Crear un controlador de eventos. Un controlador de eventos es una función que se llama cada vez que se emite un evento.
```javascript
var connectHandler = function connected() {
console.log(‘Conexión exitosa.’);
4. Asignar el controlador de eventos al evento. Este paso permite asociar un evento a una función, así que cada vez que se emita el evento, se llamará la función:
```javascript
eventEmitter.on(‘connection’, connectHandler);
```
5. También puedes asignar una función anónima a un evento directamente:
```javascript
eventEmitter.on(‘data_received’, function(){
console.log(‘Datos recibidos exitosamente.’);
});
```
6. Emitir un evento. Esto se hace utilizando el método `emit()`.
```javascript
eventEmitter.emit(‘connection’);
```
7. Finalmente, termina el programa:
```javascript
console.log(“Programa terminado”);
```
Al final, tu código podría verse así:
```javascript
var events = require(‘events’);
var eventEmitter = new events.EventEmitter();
var connectHandler = function connected() {
console.log(‘Conexión exitosa.’);
eventEmitter.emit(‘data_received’);
}
eventEmitter.on(‘connection’, connectHandler);
eventEmitter.on(‘data_received’, function() {
console.log(‘Datos recibidos exitosamente.’);
});
eventEmitter.emit(‘connection’);
console.log(“Programa terminado”);
```
En este código, “Conexión exitosa.” se mostrará antes de “Datos recibidos exitosamente.”. Esto se debe a que Node.js con EventEmitter maneja los eventos de manera sincrónica. Cuando se emite el evento ‘connection’, se llama al primer oyente registrado, luego se emite el evento ‘data_received’ y solo después de eso se llama a su oyente correspondiente.