constructor() { this.events = new EventEmitter(); this.events.setMaxListeners(0); }
import * as events from 'events'; import {readBackup} from './backup'; export const emitter = new events.EventEmitter(); emitter.setMaxListeners(0); export interface User { name: string; points: number; } const userStore: { [name: string]: User } = {}; export function upvote(name: string) { addUser(name); const user = getUser(name); user.points++; emitter.emit('users', getUsers()); return user; } export function downvote(name: string) { addUser(name); const user = getUser(name); user.points--; emitter.emit('users', getUsers()); return user; }
console.log('listener2'); }; const listener3 = (arg1: string) => { console.log('listener3', arg1); }; const listener4 = () => { console.log('type of number'); }; const listener5 = () => { console.log('prepend listener'); }; const listener6 = () => { console.log('prepend once listener'); }; emitter.setMaxListeners(100); emitter.addListener('send', listener1); emitter.on('send', listener2); emitter.on('send', listener3); emitter.once('send', listener); emitter.once(1, listener4); emitter.prependListener('send', listener5); emitter.prependOnceListener('send', listener6);
const listener: (...args: any[]) => void = () => {}; const any: any = 1; { let result: events.EventEmitter; result = emitter.addListener(event, listener); result = emitter.on(event, listener); result = emitter.once(event, listener); result = emitter.prependListener(event, listener); result = emitter.prependOnceListener(event, listener); result = emitter.removeListener(event, listener); result = emitter.off(event, listener); result = emitter.removeAllListeners(); result = emitter.removeAllListeners(event); result = emitter.setMaxListeners(42); } { let result: number; result = events.EventEmitter.defaultMaxListeners; result = events.EventEmitter.listenerCount(emitter, event); // deprecated const promise: Promise<any> = events.once(new events.EventEmitter(), 'error'); result = emitter.getMaxListeners(); result = emitter.listenerCount(event); } {