כשאתה רושם מאזין לאירוע קלאסי כמו קליק, זה נדמה כאילו ההוראה היא "כשהמשתמש ילחץ על כפתור תקרא לפונקציה X", אבל זה לא באמת ככה, ההוראה היא "כשהכפתור יפלוט אירוע בשם click אז תקרא לפונקציה X". ויש מוסכמה שהדפדפן מכבד, שכשהמשתמש לוחץ על הכפתור אז הכפתור פולט אירוע בשם click.
אבל האירוע הזה יכול להפלט גם בדרכים אחרות, אפשר לפלוט את האירוע גם בלי שהמשתמש ילחץ על הכפתור
button.click()
נמצאת למד שהמושג "אירוע" מטעה, זה לא אירוע פיזי שקורה באמת, אלא החלטה של מישהו לפלוט דבר שנקרא בשם אירוע.
האירועים של הדפדפן (ושל נוד) עובדים בצורה הפרימיטיבית, כל אירוע יש לו שם שמזוהה בסטרינג 'click' 'hover' וכו', וכדי ליצור אירוע עצמאי מזהים אותו כמחרוזת 'myCustomEvent', ונרשמים לאירוע ופולטים אותו עם המזהה סטרינג שלו.
אנגולר פיתחו מחלקת אירועים יותר מסודרת, כדי ליצור אירוע יוצרים מופע של המחלקה EventEmitter שמתפקד כאובייקט הגיוני
event = new EventEmitter()
וכך מתייחסים לאירוע כאובייקט, נרשמים להאזנה לאירוע כך
event.subscribe(handler)
ופולטים אותו כך
event.emit()
ההאזנה לאירוע אפשרית כשהסרביס מחזיק את האירוע והקומפוננטה מאזינה, כשקומפוננטה מחזיקה אירוע אין אפשרות להאזין לו מקומפוננטה אחרת, לכן כדי שההורה יוכל להאזין לאירוע של הילד צריך לעשות אאוטפוט. ההורה נרשם להאזנה בזמן הקריאה לילד וכך הוא מקבל את ההודעה שהאירוע נפלט וגם יכול לקבל את המידע שהועבר יחד עם האירוע.