nodejs 事件

1.nodejs 提供事件模块,事件模块只有一个对象 EventEmitter 
EventEmitter 的核心就 是事件发射与事件监听器功能的封装,EventEmitter 常用的API:
一直监听:EventEmitter.on(event, function)
添加监听: EventEmitter.addListener(event,  function )
发射事件: EventEmitter.emit(event, [arg1],[arg2],[...])
单次监听: EventEmitter.once(event,  function )
移除监听: EventEmitter.removeListener(event, function)
移除所有或者指定 event: EventEmitter.removeAllListener([event])

2.例子:
var events = require('events');
var emitter = new events.EventEmitter();

emitter.on('someEvent', function(arg1, arg2){
        console.log('listent1', arg1, arg2);
});

emitter.on('someEvent', function(arg1, arg2){
        console.log('listent2', arg1, arg2);
});

emitter.emit('someEvent', 'byvoid', 1991);

3.error 事件:
如果只定义 emitter.emit 事件发射,不定义 事件监听,就会报错

4.EventEmitter 继承

大多数时候我们不会直接使用 EventEmitter,而是在对象中继承它。包括 fs、net、 http 在内的,只要是支持事件响应的核心模块都是 EventEmitter 的子类。

为什么要这样做呢?原因有两点:

首先,具有某个实体功能的对象实现事件符合语义, 事件的监听和发射应该是一个对象的方法。

其次JavaScript 的对象机制是基于原型的,支持 部分多重继承,继承 EventEmitter 不会打乱对象原有的继承关系。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值