让我来详细讲解“Node.js EventEmmitter事件监听器用法实例分析”的完整攻略。
什么是EventEmitter
在Node.js中,EventEmitter是一个非常重要的模块,它是Node.js最核心的基础模块之一,EventEmitter模块是专门用来处理事件的,事件以一种观察者模式为基础,通过定义和触发事件来实现代码之间的松耦合。
EventEmitter API
下面是EventEmitter的具体API:
- on(event, listener):用于注册事件监听器,即向指定事件添加一个监听器,多次调用该方法会向该事件添加多个监听器。
- once(event, listener):用于注册最多执行一次的事件监听器,即该监听器执行完后将自动从事件中移除。
- emit(event[, arg1][, arg2][, ...]):用于触发事件,即向注册该事件的所有监听器发送事件。可选参数将会作为参数传递给监听器函数。
- removeListener(event, listener):用于移除指定事件的监听器。
- removeAllListeners([event]):用于移除指定事件的所有监听器,如果不指定event则移除所有的事件监听器。
EventEmitter 实例
在Node.js中,要使用EventEmitter模块,需要引入events模块:
const EventEmitter = require('events');
下面我们来看一下实例。
实例一:添加事件监听器
我们通过一个简单的代码来说明如何添加事件监听器:
const EventEmitter = require('events');
const eventEmitter = new EventEmitter();
// 将事件监听器添加到一个名为 sample 的事件上
eventEmitter.on('sample', () => {
console.log('Hello World!');
});
// 触发sample事件
eventEmitter.emit('sample');
在这个代码中,我们首先引入了EventEmitter模块,然后通过 new EventEmitter()
创建了一个 EventEmitter 对象 eventEmitter
。接下来,我们通过 eventEmitter.on(event, listener)
方法来添加一个事件监听器,监听器的事件类型为sample
,监听器的函数中仅输出了一个 "Hello World!" 字符串。最后,我们通过 eventEmitter.emit(event[, arg1][, arg2][, ...])
方法来触发sample
事件,并输出 "Hello World!"。
实例二: 添加参数和多个监听器
下面我们来看一下如何向监听器函数传递参数和添加多个监听器:
const EventEmitter = require('events');
const eventEmitter = new EventEmitter();
// 将事件监听器添加到一个名为 sample 的事件上
eventEmitter.on('sample', (msg) => {
console.log(`Message : ${msg}`);
});
// 将事件监听器添加到一个名为 sample 的事件上
eventEmitter.on('sample', (msg) => {
console.log(`Message Received : ${msg}`);
});
// 触发sample事件, 并传递参数 "Hello World!"
eventEmitter.emit('sample', 'Hello World!');
在这个代码中,我们首先引入了EventEmitter模块,然后通过 new EventEmitter()
创建了一个 EventEmitter 对象 eventEmitter
。接下来,我们通过 eventEmitter.on(event, listener)
方法来添加两个事件监听器,其中一个监听器输出 ${msg}
,另一个输出 Message Received : ${msg}
。最后,我们通过 eventEmitter.emit(event[, arg1][, arg2][, ...])
方法来触发sample
事件,传递一个参数 Hello World!
。
当我们运行这个代码时,我们将会看到如下输出结果:
Message : Hello World!
Message Received : Hello World!
这说明我们成功的向监听器函数传递了参数,并且成功的添加了多个监听器。
以上就是“Node.js EventEmmitter事件监听器用法实例分析”的完整攻略,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Node.js EventEmmitter事件监听器用法实例分析 - Python技术站