javascript / intermediate
Snippet
Decoupling Logic with EventEmitters
EventEmitters enable an event-driven architecture where components can react to actions without being tightly coupled to the logic that triggered them.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
const EventEmitter = require('node:events');const eventBus = new EventEmitter();// Observer 1: LoggingeventBus.on('user_signup', (user) => console.log(`Log: New user ${user.email}`));// Observer 2: Email logiceventBus.on('user_signup', (user) => sendWelcomeEmail(user));function registerUser(data) {// ... logic ...eventBus.emit('user_signup', data);}
nodejs
Breakdown
1
eventBus.on('user_signup', ...)
Subscribes a listener to a specific event name. Multiple listeners can be attached to one event.
2
eventBus.emit('user_signup', data)
Triggers the event and passes the data payload to all registered listeners synchronously.