Saturday, 1 September 2018

Memahami Events EventEmitter dalam Nodejs

Node.js Events EventEmitter adalah implementasi dari nodejs pub/sub design patterns. Core dari nodejs telah dibangun dalam sebuah arsitektur asynchronous event-driven. Dalam sebuah asynchronous event architecture, beberapa jenis object (disebut "emitters") akan tampil secara berkala disebut events yang menyebabkan Function objects ("listeners") terpanggil.

Setiap object dari emits events adalah instances dari EventEmitter class.

Kita akan melihat beberapa contoh dengan menggunakan syntax ES5.


Contoh Pertama

Pada contoh di atas kita melakukan import events object, lalu mendapatkan object emitter. Class event emitter memiliki dua method:

  • On
  • Emit

Jika kita membuat sebuah object dari class EventEmitter, kita memiliki akses juga memiliki akses ke method ini.

Pada code di atas kita hanya mendefinisikan sebuah event.

Method On() akan mengambil sebuah nama event dan sebuah function call back, yang menggambarkan logic dan isi dari sebuah fungsi.

Seperti yang kita ketahui nodejs memiliki arsitektur event-driven, sehingga ketika terjadi sebuah event dan yang terkait dengan event tersebut satu fungsi call back akan dipanggil.

Code di atas memanggil event dengan emitt, sehingga terhubung dengan event, fungsi call back dijalankan dan fungsi akan dieksekusi. Parameter pertama adalah event nama dan kedua adalah payload.

Contoh code di atas akan menampilkan.

$ Sukma Saputra

Contoh Kedua

Dalam contoh berikut, kita membuat sebuah object EventEmitter lalu membuat fungsi constructor User.

Lalu, import nodejs core module util dan melakukan inherits fungsi bawaan dari module EventEmitter untuk module User yang baru saja dibuat.

Jadi sekarang User memiliki semua method dan properti dari module EventEmitter dan kita dapat menggunakan kedua method tersebut.

Sekarang object user memiliki perilaku yang sama dengan EventEmitter dan kita dapat melakukan define events on dan event emit.

Output dari code di atas.

$ soccer

Contoh Ketiga

Code contoh Nodejs events dan event emitter di atas menggunakan ES6.

Pertama kita load class events dan membuat sebuah class dengan extends dari class events.

Selanjutnya buat object dari class yang telah kita buat, akses method on dan emit EventEmitter melalui object yang baru kita buat.

No comments:

Post a comment