Node.js学习笔记——事件处理机制&事件环机制
2020-01-14 19:38
489 查看
Node.js学习笔记——事件处理机制&事件环机制
EventEmitter类
所有可能触发事件的对象都是一个继承了EventEmitter类的子类的实例对象。
EventEmitter类各种方法
激发事件
- emitter.on(event,listener)
- 或emitter.addListener(event,listener)
- 或emitter.once(event,listener) //一次
发生event就执行listener - emitter.listener(event)
返回由该事件的所有事件处理函数构成的数组。
删除触发事件
- emitter.removeListener(event,listener)
- emitter.removeAllListener(event)
手工触发某个对象的一个事件
- emitter.emit(event,parameter1,parameter2,…)
var http=require('http'); var server=http.createServer(); server.on('custom',function(a,b,c){ console.log(a+b+c); }); server.emit('custom','asd','fgh','gh');
Console: C:\Users\kingsley\Desktop\新建文件夹> node hello.js asdfghgh
获取指定事件的事件处理函数的数量
- EventEmitter.listenerCount(emitter,event)
var http=require('http'); var events=require('events');//引入events模块 var server=http.createServer(); server.on('custom',function(a,b,c){ console.log(a+b+c); }); server.emit('custom','asd','fgh','gh'); console.log(events.EventEmitter.listenerCount(server,'custom'));
Console: C:\Users\kingsley\Desktop\新建文件夹> node hello.js asdfghgh1
EventEmitter类自身所拥有的事件
任何时候,当对继承了EventEmitter类的子类实例对象绑定/取消事件处理函数时,都将触发EventEmitter类的newListener/removeListener事件。
emitter.on('newListener',function(e,f) { }) emitter.on('removeListener',function(e,f) { }) //e是被绑定的事件名,f是被绑定的事件处理函数代码
例子:
var http=require('http'); var events=require('events');//引入events模块 var server=http.createServer(); server.on('newListener',function(e,f){ console.log(e+'事件+了一个事件处理函数'); console.log(f); }); server.on('removeListener',function(e,f){ console.log(e+'事件-了一个事件处理函数'); console.log(f); }); function test(){ console.log('hello world');} server.on('custom',test); server.removeListener('custom',test);
Console: C:\Users\kingsley\Desktop\新建文件夹> node hello.js removeListener事件+了一个事件处理函数 [Function] custom事件+了一个事件处理函数 [Function: test] custom事件-了一个事件处理函数 [Function: test] PS C:\Users\kingsley\Desktop\新建文件夹>
模块
从模块外部访问模块内的成员
“单纯”访问- exports对象
- module.exports
//hello.js var _name,_age; var name='',age=3; var foo=function(name1,age1){ _name=name1; _age=age1; } foo.prototype.age=age; module.exports=foo;//导出类 //index.js var foo=require('./hello.js'); var object=new foo("jack",20); console.log(object._age); //undefined(因为没有用prototype,所以是私有变量) console.log(object.age); //3
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Node.js学习笔记之三:事件_EventEmitter
- js学习笔记:事件——事件流、事件处理程序、事件对象
- js学习笔记之事件处理模型
- 《Node.js》之事件处理机制以及事件环机制(一)
- node.js中的事件处理机制详解
- Vue.js学习笔记——简单事件处理
- Java学习笔记(AWT 之 事件处理机制)
- 【Cocos2d-X开发学习笔记】第22期:事件处理机制之触屏事件
- Node.js中的模块机制学习笔记
- node.js学习笔记2——querystring (查询字符串,参数处理)
- 第九章(1)-事件处理机制-学习笔记
- 《Node.js》之事件处理机制以及事件环机制(二)
- JavaScript学习笔记之事件处理机制
- 【js学习笔记-092】-----事件处理程序的调用
- js学习笔记之事件处理模型
- 韩顺平 javascript教学视频_学习笔记23_js事件驱动机制深入理解_js常用事件_js版计算器
- 【Cocos2d-X开发学习笔记】第22期:事件处理机制之触屏事件
- 【js学习笔记-090】---事件处理
- 【Cocos2d-X开发学习笔记】第24期:事件处理机制之加速度传感器事件
- Cocos2d-x学习笔记(九)-------->Touch事件处理机制