• eventName {string|symbol} 事件的名称。
    • listener {Function} 事件的句柄函数。

    EventEmitter 实例在新的监听器被添加到其内部监听器数组之前,会触发自身的 'newListener' 事件。

    'newListener' 事件注册的监听器将传递事件名称和对要添加的监听器的引用。

    在添加监听器之前触发事件的事实具有微妙但重要的副作用:在 'newListener' 回调中注册到相同 name 的任何其他监听器将插入到正在添加的监听器之前。

    1. class MyEmitter extends EventEmitter {}
    2. const myEmitter = new MyEmitter();
    3. // 只处理一次,避免无限循环。
    4. myEmitter.once('newListener', (event, listener) => {
    5. if (event === 'event') {
    6. // 在前面插入一个新的监听器。
    7. myEmitter.on('event', () => {
    8. console.log('B');
    9. });
    10. }
    11. });
    12. myEmitter.on('event', () => {
    13. console.log('A');
    14. });
    15. myEmitter.emit('event');
    16. // 打印:
    17. // B
    18. // A