nodejs 事件触发器 events模块

----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('错误'));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值