class EventEmitter { constructor() { this.events = {}; } on(event, fn) { (this.events[event] ||= []).push(fn); return this; } off(event, fn) { this.events[event] = this.events[event]?.filter(f => f !== fn); } emit(event, ...args) { this.events[event]?.forEach(fn => fn(...args)); } once(event, fn) { const wrapper = (...args) => { fn(...args); this.off(event, wrapper); }; this.on(event, wrapper); } }. Основа pub/sub паттерна. Node.js EventEmitter аналогичен. Используется для decoupled коммуникации между модулями.
Как реализовать EventEmitter?
Middle
268 просмотровAFK Offer AI
Когда useReducer лучше чем useState?