0 day streak
javascript / intermediate
Snippet

Decoupling Logic with EventEmitter

EventEmitter allows you to build a pub/sub pattern within your application. This decouples the logic of 'performing an action' from 'reacting to that action', making the code more modular.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
const EventEmitter = require('events');
const logger = new EventEmitter();
logger.on('message', (data) => {
console.log(`[LOG]: ${data.text} (Level: ${data.level})`);
});
function processTask(taskName) {
// Perform logic...
logger.emit('message', { text: `Task ${taskName} finished`, level: 'info' });
}
processTask('DatabaseBackup');
nodejs
Breakdown
1
logger.on('message', (data) => {
Registers a listener for the event named 'message'.
2
logger.emit('message', ...)
Triggers the event and passes the data object to all registered listeners.