CodeBlanks Logo Icon CodeBlanks

Özet - Events

EventEmitter, on/emit ve önce'ı birleştirerek bir sayaç uygulaması yazarsın.

Özet - Events

Bu grupta EventEmitter'in temel araçlarını öğrendin: on ile dinleyici kaydetmek, emit ile olay fırlatmak, once ile tek seferlik dinleyici eklemek, removeListener ile dinleyici kaldırmak ve error olayı ile hata yönetimi.

Şimdi bunları birleştirerek bir sayaç uygulaması yazacaksın. Uygulama bir EventEmitter üzerine kurulu olacak; "inc" olayı her fırlatıldığında sayaç artacak ve güncel değer yazdırılacak. Bu mini görev sayesinde olayların gerçek bir senaryoda nasıl birleştiğini göreceksin.

Sayaç tasarımı

Sayaç uygulamasının iskeleti: bir count değişkeni, bir EventEmitter örneği ve bir "inc" dinleyicisi. Dinleyici count'u bir artırır ve yeni değeri yazdırır. Dışarıdan emit("inc") çağrıları sayacı ilerletir.

Akış: const counter = new EventEmitter(); let count = 0; counter.on("inc", () => { count++; console.log("Sayaç: " + count); });. Üç emit("inc") çağrısı Sayaç: 1, Sayaç: 2, Sayaç: 3 yazdırır. Dinleyici içte count'u kapatır (closure); bu yüzden sayaç değeri çağrılar arasında korunur.

Uygulama Sayaç uygulamasını yaz

counter adında bir EventEmitter örneği oluştur. count değişkenini 0 başlat. "inc" olayını dinle: dinleyici count'u bir artırsın ve "Sayaç: " + count yazsın. emit("inc") çağrısını üç kez yap.

Başlangıç kodu

index.js
// EventEmitter içe aktar ve counter örneği oluştur
// buraya yaz

let count = 0;
// "inc" olayı için dinleyici ekle: count'u artır ve "Sayaç: " + count yazdır
// buraya yaz

// "inc" olayını üç kez fırlat
// buraya yaz

Örnek çözüm

index.js
const { EventEmitter } = require("events");
const counter = new EventEmitter();
let count = 0;
counter.on("inc", () => { count++; console.log("Sayaç: " + count); });
counter.emit("inc");
counter.emit("inc");
counter.emit("inc");

Beklenen çıktı

Sayaç: 1
Sayaç: 2
Sayaç: 3

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Sayaç uygulaması hangi parçaları birleştirir?

index.js
emitter.on("inc", () => { count++; ... })
  • Yalnızca console.log
  • EventEmitter, on ve emit Doğru cevap
  • Yalnızca require
  • Yalnızca new

Açıklama: EventEmitter örneği, on ile dinleme ve emit ile fırlatma birleşir.

2 Aracı rolüne eşle

Kavram Anlamı
on("inc", ...) Sayacı dinler
emit("inc") Artırmayı tetikler
count++ Değeri bir artırır
new EventEmitter() Yayıncı oluşturur

Orta seviye bölümündeki tüm dersler