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!

Node.js - Events

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