Terjemahan ke Bahasa Indonesia
Node.js - Events: Panduan untuk Pemula
Halo sana, para ahli Node.js masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia Node.js Events. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan yang ramah, dan kita akan menjelajahi topik ini bersama langkah demi langkah. Jadi, ambil secangkir kopi (atau teh, jika itu hal Anda), dan mari kita masuk ke dalam!
apa itu Events di Node.js?
Sebelum kita masuk ke detail, mari kita mulai dengan analogi sederhana. Bayangkan Anda di sebuah pesta (pesta Node.js, tentu saja!). Anda sedang berbicara dengan teman-teman, dan tiba-tiba seseorang menjerit, "Pizza datang!" Jeritan itu adalah event, dan reaksi Anda - mungkin lari untuk mengambil potongannya - adalah bagaimana Anda menangani event itu.
Di Node.js, event bekerja sama seperti itu. Mereka adalah hal yang terjadi di program Anda, dan Anda dapat menyiapkan reaksi khusus (kami sebutnya "listener") untuk merespon saat event tersebut terjadi.
Kelas EventEmitter
Pada inti dari event Node.js adalah sesuatu yang disebut kelas EventEmitter
. Bayangkan ini sebagai tuan rumah pesta yang bertanggung jawab untuk menjerit pengumuman (mengirimkan event) dan memastikan semua orang yang ingin mendengar tentang pizza (atau event lainnya) mendapat pesan.
mari lihat bagaimana kita dapat membuat EventEmitter sendiri:
const EventEmitter = require('events');
// Buat objek EventEmitter baru
const myEmitter = new EventEmitter();
Dalam kode ini, pertama-tama kita mengimpor modul events
, yang memberikan kita akses ke kelas EventEmitter. Kemudian, kita membuat instance EventEmitter baru yang disebut myEmitter
. Objek myEmitter
ini sekarang dapat mengirimkan event dan mendengarkan mereka.
Mengirimkan dan Menangani Event
Sekarang kita memiliki EventEmitter, mari kita belajar bagaimana menggunakannya. Kita akan mulai dengan dua metode terpenting: on()
dan emit()
.
Metode on()
Metode on()
digunakan untuk menambahkan fungsi listener ke event. Itu seperti mengatakan ke teman-teman Anda, "Hey, beritahu saya jika pizza tiba!"
Berikut bagaimana kita menggunakannya:
myEmitter.on('pizzaArrived', () => {
console.log('Yay! Pizza sudah di sini!');
});
Dalam contoh ini, kita mengatakan ke myEmitter
untuk mendengarkan event pizzaArrived
. Ketika event ini terjadi, ia akan menjalankan fungsi yang kita sediakan, yang hanya mencetak pesan ke konsol.
Metode emit()
Metode emit()
digunakan untuk memicu event. Itu seperti benar-benar menjerit "Pizza datang!" di pesta.
Lihat bagaimana ia bekerja:
myEmitter.emit('pizzaArrived');
Ketika baris ini dijalankan, ia akan memicu event pizzaArrived
, dan semua listener yang terhubung ke event ini akan menjalankan fungsi mereka.
Mari kita gabungkan semuanya:
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('pizzaArrived', () => {
console.log('Yay! Pizza sudah di sini!');
});
myEmitter.emit('pizzaArrived');
// Output: Yay! Pizza sudah di sini!
Jalankan kode ini, dan Anda akan melihat pesan dicetak ke konsol. Selamat! Anda baru saja membuat dan menangani event Node.js pertama Anda!
Mengirimkan Argumen dengan Event
kadang-kadang, Anda ingin mengirimkan informasi tambahan dengan event. Misalnya, mungkin Anda ingin menentukan jenis pizza yang tiba. Kita dapat melakukan ini dengan mengirimkan argumen ke metode emit()
:
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('pizzaArrived', (type) => {
console.log(`Yay! Pizza ${type} sudah di sini!`);
});
myEmitter.emit('pizzaArrived', 'pepperoni');
// Output: Yay! Pizza pepperoni sudah di sini!
Dalam contoh ini, kita mengirimkan 'pepperoni' sebagai argumen saat kita mengirimkan event. Listener dapat menggunakan argumen ini dalam tanggapan mereka.
Listener Ganda
Anda dapat menambahkan beberapa listener ke event yang sama. Misalnya, katakanlah orang-orang berbeda di pesta ingin bereaksi berbeda saat pizza tiba:
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('pizzaArrived', () => {
console.log('Orang 1: Saya akan mengambil piring!');
});
myEmitter.on('pizzaArrived', () => {
console.log('Orang 2: Saya akan mengisi minuman!');
});
myEmitter.on('pizzaArrived', () => {
console.log('Orang 3: Saya akan memainkan musik!');
});
myEmitter.emit('pizzaArrived');
// Output:
// Orang 1: Saya akan mengambil piring!
// Orang 2: Saya akan mengisi minuman!
// Orang 3: Saya akan memainkan musik!
Saat Anda menjalankan kode ini, Anda akan melihat semua tanggapan dicetak ke konsol. Listener dipanggil dalam urutan mereka terdaftar.
Listener Satu Kali
kadang-kadang, Anda hanya ingin mendengarkan event sekali. Untuk ini, kita memiliki metode once()
. Itu seperti mengatakan, "Hanya beritahu saya saat pizza pertama tiba, setelah itu saya tidak perlu tau lagi."
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
myEmitter.once('pizzaArrived', () => {
console.log('Pizza pertama sudah tiba!');
});
myEmitter.emit('pizzaArrived');
// Output: Pizza pertama sudah tiba!
myEmitter.emit('pizzaArrived');
// Tidak ada output
Dalam contoh ini, listener kedua emit()
tidak menghasilkan output karena listener dihapus setelah ia dijalankan sekali.
Event Kesalahan
Di Node.js, ada event khusus yang disebut 'error'. Jika event kesalahan diirimkan dan tidak ada listener untuknya, Node.js akan mencetak stack trace dan keluar dari program. Itu selalu baik untuk memiliki listener kesalahan:
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('error', (err) => {
console.error('Ups! Ada yang salah:', err);
});
myEmitter.emit('error', new Error('Oven pizza rusak!'));
// Output: Ups! Ada yang salah: Error: Oven pizza rusak!
Menghapus Listener
Jika Anda tidak lagi ingin mendengarkan event, Anda dapat menghapus listener menggunakan metode removeListener()
:
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
function pizzaHandler() {
console.log('Waktu pizza!');
}
myEmitter.on('pizzaArrived', pizzaHandler);
myEmitter.emit('pizzaArrived');
// Output: Waktu pizza!
myEmitter.removeListener('pizzaArrived', pizzaHandler);
myEmitter.emit('pizzaArrived');
// Tidak ada output
Ringkasan Metode EventEmitter
Berikut adalah tabel yang menggabungkan metode utama yang kita cover:
Metode | Deskripsi |
---|---|
on(eventName, listener) |
Menambahkan fungsi listener ke event |
emit(eventName[, ...args]) |
Memicu event, secara opsional dengan argumen |
once(eventName, listener) |
Menambahkan fungsi listener sekali ke event |
removeListener(eventName, listener) |
Menghapus listener tertentu dari event |
removeAllListeners([eventName]) |
Menghapus semua listener, atau yang terhubung ke event tertentu |
Dan begitu saja! Anda baru saja mengambil langkah pertama ke dunia event Node.js. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba konsep ini. Cobalah membuat event Anda sendiri, mungkin untuk permainan sederhana atau aplikasi chat.
Saat Anda terus melanjutkan perjalanan Anda dalam Node.js, Anda akan menemukan bahwa event adalah alat yang kuat untuk membuat aplikasi responsif dan berbasis event. Mereka digunakan secara luas dalam banyak aplikasi dan pustaka Node.js, jadi memahaminya dengan baik akan membantu Anda banyak dalam proyek masa depan Anda.
Terus coding, terus belajar, dan terutama, terus bersenang-senang! Dan ingat, baik itu coding atau pizza, hal itu selalu lebih baik saat dipartisi bersama teman-teman. Selamat coding Node.js!
Credits: Image by storyset