当使用 eventEmitter.on() 注册监听器时,监听器会在每次触发命名事件时被调用。

    1. const myEmitter = new MyEmitter();
    2. let m = 0;
    3. myEmitter.on('event', () => {
    4. console.log(++m);
    5. });
    6. myEmitter.emit('event');
    7. // 打印: 1
    8. myEmitter.emit('event');
    9. // 打印: 2

    使用 eventEmitter.once() 可以注册最多可调用一次的监听器。 当事件被触发时,监听器会被注销,然后再调用。

    1. const myEmitter = new MyEmitter();
    2. let m = 0;
    3. myEmitter.once('event', () => {
    4. console.log(++m);
    5. });
    6. myEmitter.emit('event');
    7. // 打印: 1
    8. myEmitter.emit('event');
    9. // 不触发