Halo teman-teman semuanya! Setelah sebelumnya kita membahas core module seperti fs, path, dan os, kali ini kita akan berkenalan dengan salah satu fitur inti di Node.js yang sangat penting, yaitu Event Emitter.
Node.js dibangun dengan konsep event-driven architecture, artinya banyak hal terjadi sebagai response terhadap suatu peristiwa (event). Fitur ini sangat berguna, terutama saat kita membuat server atau aplikasi real-time.
Apa Itu Event Emitter?
Event Emitter adalah objek yang memungkinkan kita untuk:
- Mendaftarkan listener untuk event tertentu
- Memicu event dan menjalankan semua listener yang sudah terdaftar
Event Emitter ini sudah tersedia dalam core module events
.
Contoh Sederhana: Menggunakan EventEmitter
const EventEmitter = require('events');
const emitter = new EventEmitter();
// Mendaftarkan listener untuk event 'salam'
emitter.on('salam', (nama) => {
console.log(`Halo, ${nama}!`);
});
// Memicu event 'salam'
emitter.emit('salam', 'SantriKoding');
Penjelasan:
on()
digunakan untuk mendengarkan event
emit()
digunakan untuk memicu event
Output dari contoh di atas:
Halo, SantriKoding!
Mendaftarkan Beberapa Listener
Kita bisa menambahkan lebih dari satu listener untuk satu event:
emitter.on('pesan', () => {
console.log('Pesan pertama diterima.');
});
emitter.on('pesan', () => {
console.log('Pesan kedua diterima.');
});
emitter.emit('pesan');
Output:
Pesan pertama diterima.
Pesan kedua diterima.
Menghapus Listener
Kita bisa menghapus listener dengan removeListener()
atau off()
:
const salamHandler = (nama) => {
console.log(`Hai, ${nama}!`);
};
emitter.on('salam', salamHandler);
emitter.emit('salam', 'Andi');
emitter.off('salam', salamHandler);
emitter.emit('salam', 'Budi'); // Tidak akan menampilkan apa-apa
Kesimpulan
Event Emitter adalah fitur penting di Node.js yang memungkinkan kita untuk menanggapi dan mengatur kejadian tertentu dengan cara yang fleksibel dan efisien. Ini adalah salah satu kekuatan utama Node.js dalam membangun aplikasi real-time.
Pada artikel berikutnya, kita semua akan belajar tentang Http Module di dalam Node.js.
Terima Kasih