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

来源:互联网 发布:网络名词流行用语解释 编辑:程序博客网 时间:2024/06/04 22:25

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
原创粉丝点击