Page MenuHomePhorge

events.js
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

events.js

console.log('Example 1: Global Events');
addEventListener('appReady', () => {
console.log(' App is ready!');
});
dispatchEvent('appReady');
console.log('\nExample 2: Custom Event Data');
addEventListener('userLogin', event => {
console.log(' User logged in:', event.detail.username);
console.log(' Login time:', event.detail.timestamp);
});
dispatchEvent('userLogin', {
username: 'alice',
timestamp: Date.now()
});
console.log('\nExample 3: Object Events');
const button = new EventTarget();
button.name = 'MyButton';
button.addEventListener('click', event => {
console.log(' Button clicked!');
console.log(' Button name:', event.target.name);
});
button.dispatchEvent('click');
button.dispatchEvent('click');
console.log('\nExample 4: Multiple Event Targets');
const user = new EventTarget();
user.name = 'Alice';
const socket = new EventTarget();
socket.id = 'socket-123';
user.addEventListener('statusChange', event => {
console.log(' User status changed:', event.detail.status);
});
socket.addEventListener('message', event => {
console.log(' Socket message:', event.detail.data);
});
user.dispatchEvent('statusChange', { status: 'online' });
socket.dispatchEvent('message', { data: 'Hello!' });
console.log('\nExample 5: Once Listeners');
const startup = new EventTarget();
let initCount = 0;
startup.addEventListener(
'init',
() => {
initCount++;
console.log(' Initialization running... (count:', initCount + ')');
},
{ once: true }
);
startup.dispatchEvent('init');
startup.dispatchEvent('init');
startup.dispatchEvent('init');
console.log(' Total init calls:', initCount);
console.log('\nExample 6: Event Emitter Pattern');
class MyEmitter {
constructor() {
const target = new EventTarget();
this.on = target.addEventListener.bind(target);
this.off = target.removeEventListener.bind(target);
this.emit = target.dispatchEvent.bind(target);
}
}
const emitter = new MyEmitter();
emitter.on('data', event => {
console.log(' Data received:', event.detail);
});
emitter.emit('data', { value: 42, type: 'number' });
emitter.emit('data', { value: 'hello', type: 'string' });
console.log('\nExample 7: Removing Listeners');
const temp = new EventTarget();
function handler(event) {
console.log(' Handler called with:', event.detail);
}
temp.addEventListener('test', handler);
temp.dispatchEvent('test', 'first call');
temp.removeEventListener('test', handler);
temp.dispatchEvent('test', 'second call (not shown)');
console.log(' Handler was removed successfully');

File Metadata

Mime Type
text/plain
Expires
Sun, May 3, 9:25 AM (1 d, 22 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
518092
Default Alt Text
events.js (2 KB)

Event Timeline