Node.js’de olay yayıcıları (event emitter), bir nesnenin belirli bir olayın meydana geldiğini bildirdiği ve bu olayı dinleyen diğer nesnelere bu olayı iletebilen bir mekanizmadır. Olay yayıcıları, Node.js’nin yapı taşlarından biridir ve çok yönlülük ve esneklik sunan önemli bir yapıdır.
Node.js’de, EventEmitter sınıfı, olay yayıcılarını oluşturmak için kullanılır. Bu sınıf, olayların dinlenmesini ve yayılmasını sağlar.
Örneğin, aşağıdaki kod örneğinde, bir olay yayıcısı oluşturulur ve bir “greet” olayı tanımlanır. Bu olay, greet metodu tarafından tetiklenir ve “Hello, World!” mesajını gönderir:
const EventEmitter = require('events'); class Greetr extends EventEmitter { greet(data) { console.log(`Hello, ${data}!`); this.emit('greet', data); } } const greeter = new Greetr(); greeter.on('greet', (data) => { console.log(`Someone greeted ${data}!`); }); greeter.greet('World');
Bu örnekte, greeter nesnesi Greetr sınıfından türetilir ve on metodu ile greet olayı dinlenir. greet metodu çalıştığında, emit metodu ile greet olayı yayılır ve dinleyen fonksiyon ((data) => { console.log(Someone greeted ${data}!); }) çalışır.