کاربرد ماژول events در Node.js

Using the events module in Node.js

ماژول events در Node.js برای مدیریت سیستم‌ های مبتنی بر رویداد (Event-Driven) استفاده می‌شود. این ماژول به شما اجازه می‌دهد تا رویدادها را تعریف، گوش (listen) داده و فراخوانی (emit) کنید.

۱. وارد کردن ماژول

const EventEmitter = require('events');
const emitter = new EventEmitter();

۲. متدهای اصلی EventEmitter


on(event, listener)

یک listener (تابع شنونده) را برای رویداد مشخص ثبت می‌کنه هر بار که رویداد با emit فراخوانی شود، تمام listener های ثبت‌شده برای اون اجرا می‌شه می‌تونه چندین listener برای یک رویداد داشته باشه و به ترتیب ثبت‌ شدن اجرا می‌شه.

once(event, listener)

مشابه on هست، اما listener فقط یک‌ بار اجرا می‌شود و سپس به‌طور خودکار حذف می‌گردد برای مواقعی استفاده می‌شود که رویداد فقط یک بار در طول برنامه باید پاسخ داده شود.

emit(event, [...args])

رویداد مشخص‌ شده رو فعال می‌کنه و تمام listener های ثبت‌شده رو با آرگومان‌ های داده‌ شده فراخوانی می‌کنه اگر هیچ listener برای رویداد ثبت نشده باشه، هیچ اتفاقی نمی‌افتد (به‌جز رویداد error که اگر listener نداشته باشد باعث خطا می‌شه).

off(event, listener) (یا removeListener)

یک listener خاص را از یک رویداد حذف می‌کند اگر همان listener چند بار ثبت شده باشد، تنها یکی از آن‌ها حذف می‌شود مگر این‌که چند بار فراخوانی شود.

removeAllListeners([event])

تمام listener های یک رویداد خاص یا در صورت عدم تعیین نام رویداد، تمام رویدادها را حذف می‌کنه برای پاک‌ سازی حافظه در برنامه‌ های طولانی یا زمانی که دیگه نیازی به گوش دادن به رویدادها نیست استفاده می‌شه.

listeners(event)

یک آرایه از تمام listener های ثبت‌شده برای یک رویداد خاص رو برمیگردونه برای مشاهده یا مدیریت دستی listener ها به کار میاد.

listenerCount(event)

تعداد listener های ثبت‌ شده برای یک رویداد خاص رو برمیگردونه برای بررسی و جلوگیری از ثبت بیش‌ از حد listener ها مفیده.

eventNames()

آرایه‌ای از تمام نام رویدادهایی که حداقل یک listener برای اون ها ثبت شده رو برمیگردونه.

setMaxListeners(n)

به‌صورت پیش‌فرض Node.js یک هشدار زمانی می‌ده که بیش از n listener  برای یک رویداد ثبت نشه.این متد مقدار پیش‌فرض را تغییر می‌دهد و به شما امکان می‌دهد حد بالاتر یا پایین‌تری تنظیم کنید.

getMaxListeners()

مقدار فعلی حداکثر تعداد listener های مجاز برای یک رویداد رو برمی‌گردونه.

prependListener(event, listener)

یک listener رو در ابتدای صف اجرای رویداد اضافه می‌کنه (به جای انتهای صف که متد on انجام می‌ده).

prependOnceListener(event, listener)

مشابه prependListener هست اما فقط یک بار اجرا می‌شه و بعدش حذف می‌شه.