在浏览器中,有单击,滚动,键盘等多种事件。
Node.js 中虽然没有这些事件,但是提供了 events 模块用来构建类似的事件。
具体上,此模块提供了 EventEmitter 类,用于处理事件。
初始化方法:
const EventEmitter = require('events');const eventEmitter = new EventEmitter();
eventEmitter 对象主要有两个方法:
emit:用于触发事件on:用于监听事件,添加回调函数如,创建 start 事件并监听:
// 监听eventEmitter.on('start', () => {console.log('开始');});// 触发eventEmitter.emit('start');
也可以传递参数:
eventEmitter.on('start', (start, end) => {console.log(`从 ${start} 到 ${end}`);});eventEmitter.emit('start', 1, 100);
EventEmitter 还提供了其他方法,如:
once(): 添加单次监听器。removeListener() / off(): 从事件中移除事件监听器。removeAllListeners(): 移除事件的所有监听器。