nodejs笔记(1)--事件模型

events是node.js 最重要的模块,events模块只提供了一个对象events.EventEmitter,EventEmitter 的核心是事件发射与事件监听器。

Node.js中大部分的模块,都继承自Event模块。
与DOM树上事件不同,不存在事件冒泡、逐层捕获等行为。

EventEmitter 支持若干个事件监听器。当事件发射时,注册到这个事件的事件监听器被依次调用,事件参数作为回调函数参数传递。

const events = require("events");

var ee = new events.EventEmitter();


var listener = function(arg){
    console.log("触发first事件"+arg);
}

var listener2 = function(arg){
    console.log("触发next事件"+arg);
}
ee.on("first",listener)

ee.on("next",listener2)

// emitter.once注册监听是一次性监听,当触发一次后,会移除该监听
ee.once("once",function(arg){
    console.log("触发once事件"+arg);
})
/*emitter.removeListener的第二个参数是要移除的监听,而非移除成功后的回调函数*/

ee.removeListener("first",listener);
ee.emit("first","aa")

/*EventEmitter.removeAllListeners([event])   移除(批定事件)所有监听器*/
ee.removeAllListeners("next");


/*
    EventEmitter.emit(event, [arg1], [arg2], [...])   触发指定事件
    参数1:event  字符串,事件名
    参数2:可选参数,按顺序传入回调函数的参数
    返回值:该事件是否有监听
*/
var isSuccess = ee.emit("first","1次");
var isSuccess2 = ee.emit("next","2次");
var isSuccess3 = ee.emit("once","3次");
var isSuccess4 = ee.emit("once","4次");
console.log("isSuccess:"+isSuccess+",isSuccess2:"+isSuccess2+",isSuccess3:"+isSuccess3+",isSuccess4:"+isSuccess4);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值