Node.js – EventEmitter Sınıfı

Merhaba,

Bu makalemizde Node.js üzerinde event oluşturmak için kullanılan EventEmitter sınıfını değerlendirecek ve ardından bu sınıfı kullanarak olay oluşturmayı inceleyeceğiz.

EventEmitter sınıfı sayesinde özel olaylar tanımlayarak, tanımladığınız bu olayları istediğiniz zaman tetikleyebilirsiniz.

İlgili sınıfı kullanabilmek için öncelikle “events” modülünün require edilmesi gerekmektedir.

const event = require("events");

Ardından bu modül içerisinde bulunan EventEmitter sınıfından nesne talep edilmelidir.

const eventEmitter = new event.EventEmitter();

Bu işlemden sonra EventEmitter nesnesi üzerinden olaylarımızı tanımlayabiliriz.

eventEmitter.on("Tetikle", () => {
    console.log("Tetiklendi...");
});

Tanımlanan olayı tetiklemek için tekrardan EventEmitter nesnesinin “emit” fonksiyonunu çağırmamız yeterlidir.

eventEmitter.emit("Tetikle");

Bu işlem neticesinde olayımız tetiklenecek ve beklenen çıktılar elde edilecektir.

Yapmış olduğumuz çalışmayı aşağıda toparlarsak eğer;

const event = require("events");
//Olay modülünü require ediyoruz.
const eventEmitter = new event.EventEmitter();
//Olay tanımlamak için EventEmitter nesnesi oluşturulur.

eventEmitter.on("Tetikle", () => {
    console.log("Tetiklendi...");
});
//EventEmitter nesnesi üzerinden on fonksiyonuyla olayımızı tanımlıyoruz.

eventEmitter.emit("Tetikle");
//Olayı trigger etmek için emit fonksiyonu kullanılır.

Şimdi dikkatleri tanımlanan event fonksiyonuna odaklarsak eğer içerisindeki callback fonksiyonuna nasıl parametre tanımlayacağız diye olası sorunuzun cevabıyla, “emit” fonksiyonuyla tanımlanan parametreye istenen değerin nasıl gönderildiğini aşağıda ele almış bulunmaktayız.

eventEmitter.on("Tetikle", (data) => {
    console.log(`Tetiklendi... : ${data.name} ${data.surName}`);
});

eventEmitter.emit("Tetikle", { name: "Gençay", surName: "Yıldız" });

Son olarak tanımlanan olayda “on” fonksiyonundan ziyade “once” fonksiyonunuda kullanabiliriz. İkisinin arasındaki temel fark; “on” fonksiyonu ard arda trigger edilebiliyorken, “once” fonksiyonu tek sefer trigger edilebilmektedir.

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. 23 Temmuz 2018

    […] bazı faktörleride yapılarında barındırmaktadırlar. Node.js’de Streamlar, aslen birer event emitter‘dır. Dolayısıyla, akış anında her bir parça sunulduğu anda bundan bizim haberimiz […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Copy Protected by Chetan's WP-Copyprotect.