nodejs 事件触发器 events模块

本文深入解析Node.js中的EventEmitter机制,包括事件触发、监听器管理、异步同步操作和错误处理。重点介绍如何使用on(), emit(), once()等方法,并探讨了如何处理'error'事件和切换执行模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

----events

大多数nodejs核心API构建于惯用的异步事件驱动架构,其中某些类型的对象(触发器 Emitter)会触发命名事件来调用函数(监听器 Listener) 

所有能触发事件的对象都是EventEmitter类的实例;当EventEmitter对象触发一个事件时,所有绑定在该事件上的函数都会被同步的调用;被调用的监听器返回的任何值都将会被忽略并丢弃

const EventEmitter = require('events');

const eventEmitter = new EventEmitter();

对象eventEmitter有2个方法:on和emit

emit用于触发事件  可以传任意数量的参数到监听器函数,当监听器函数被调用时,this关键词会被指向监听器所绑定的EventEmitter实例,如果用箭头函数,则this不会指向绑定的EventEmitter实例

on用于添加回调函数(会在事件被触发时执行) 

once() 添加单次监听器 

removeListener()/off() 从事件中移除事件监听器

removeAllListeners() 移除事件的所有监听器

例如:eventEmitter.on('start', (data)=>{ console.log(`---开始---${data}`); }); 当执行到eventEmitter.emit('start', 10)时,事件处理函数会被触发,会打印信息

--异步 同步

EventEmitter以注册的顺序同步的调用所有监听器

可以使用setImmediate()和process.nextTick()方法切换到异步的操作模式

eventEmitter.on('start', (data)=>{ setImmediate(()=>{ console.log('异步'); }); })

--错误事件

当EventEmitter实例出错时,应该触发'error'事件;如果没有为'error'事件注册监听器,当'error'事件触发时,会抛出错误、打印堆栈跟踪并退出nodejs进程

可以为'error'事件注册监听器 myEmitter.emit('error',new Error('错误'));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值