您的位置:首页 > 游戏 > 游戏 > 如何制作微信答题小程序_有哪些网站可以免费看电影_网站外链怎么发布_英文谷歌优化

如何制作微信答题小程序_有哪些网站可以免费看电影_网站外链怎么发布_英文谷歌优化

2025/4/21 18:29:38 来源:https://blog.csdn.net/m0_67804957/article/details/146495882  浏览:    关键词:如何制作微信答题小程序_有哪些网站可以免费看电影_网站外链怎么发布_英文谷歌优化
如何制作微信答题小程序_有哪些网站可以免费看电影_网站外链怎么发布_英文谷歌优化

一、介绍

Node.js 中的许多对象都会分发事件,例如:

  • net.Server 对象在每次有新连接时触发事件。

  • fs.readStream 对象在文件被打开时触发事件。

所有这些事件对象都是 events.EventEmitter 的实例。EventEmitter 是 Node.js 中用于创建、注册和触发事件的核心模块,实现了事件驱动编程的基础。

二、引入 events 模块

var events = require('events');
var eventEmitter = new events.EventEmitter();

三、基本用法示例

var EventEmitter = require('events').EventEmitter;
var event = new EventEmitter();event.on('some_event', function() {console.log('some_event 事件触发');
});setTimeout(function() {event.emit('some_event');
}, 1000);

执行结果:

some_event 事件触发

四、事件绑定多个监听器

var events = require('events');
var emitter = new events.EventEmitter();emitter.on('someEvent', function(arg1, arg2) {console.log('listener1', arg1, arg2);
});emitter.on('someEvent', function(arg1, arg2) {console.log('listener2', arg1, arg2);
});emitter.emit('someEvent', 'arg1 参数', 'arg2 参数');

执行结果:

listener1 arg1 参数 arg2 参数
listener2 arg1 参数 arg2 参数

五、EventEmitter 方法

序号方法描述
1addListener(event, listener)添加监听器到监听器数组的尾部
2on(event, listener)绑定事件
3once(event, listener)绑定一次性监听器
4removeListener(event, listener)移除指定监听器
5removeAllListeners([event])移除所有监听器
6setMaxListeners(n)设置最大监听器数量
7listeners(event)返回监听器数组
8emit(event, [arg1], [arg2], [...])触发事件

六、once() 注册一次性事件

const EventEmitter = require('events');
const myEmitter = new EventEmitter();myEmitter.once('init', () => {console.log('Initialization event occurred');
});myEmitter.emit('init'); // 打印: Initialization event occurred
myEmitter.emit('init'); // 不会再触发

七、监听 error 事件

myEmitter.on('error', (err) => {console.error('Error event triggered:', err);
});myEmitter.emit('error', new Error('Something went wrong'));

执行结果:

Error event triggered: Error: Something went wrong

八、EventEmitter 事件

序号事件描述
1newListener添加新监听器时触发
2removeListener删除监听器时触发

九、listenerCount() 获取监听器数量

var eventListeners = eventEmitter.listenerCount('connection');
console.log(eventListeners + " 个监听器监听连接事件。");

十、继承 EventEmitter

Node.js 核心模块(如 HTTP、fs)都是 EventEmitter 的子类。

继承示例:

const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}const customEmitter = new MyEmitter();
customEmitter.on('customEvent', () => {console.log('Custom event fired');
});customEmitter.emit('customEvent');

执行结果:

Custom event fired

十一、结论

  • EventEmitter 提供了事件的发布与订阅机制,适用于事件驱动编程。

  • 可以使用 on 绑定事件,使用 emit 触发事件。

  • once 绑定一次性事件,removeListener 用于移除事件监听。

  • EventEmitter 允许继承,以创建自定义事件驱动对象。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com