Node.js事件机制
来源:互联网 发布:tp link软件下载 编辑:程序博客网 时间:2024/05/29 12:30
node.js是单线程,,通过事件和回调来支持并发。Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。
执行结果:
按参数的顺序执行每个监听器,如果事件有注册监听返回 true,否则返回 false。
Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数。
这一点有点儿像开发游戏的时候触发了某一事件,,进入到回调函数中进行具体的操作,,,比如游戏物体碰撞检测之后(进入到传送门),回掉函数使其切换场景。
ar events = require('events');// 创建 eventEmitter 对象var eventEmitter = new events.EventEmitter();// 创建事件处理程序var connectHandler = function connected() { console.log('连接成功。'); // 触发 data_received 事件 eventEmitter.emit('data_received');}// 绑定 connection 事件处理程序eventEmitter.on('connection', connectHandler); // 使用匿名函数绑定 data_received 事件eventEmitter.on('data_received', function(){ console.log('数据接收成功。');});// 触发 connection 事件 eventEmitter.emit('connection');console.log("程序执行完毕。");
执行结果:
连接成功。
数据接收成功。
程序执行完毕。
events 模块只提供了一个对象: events.EventEmitter。EventEmitter 的核心就是事件触发与事件监听器功能的封装。
我们可以通过require("events");来访问该模块。
EventEmitter 提供了多个属性,如 on 和 emit。on 函数用于绑定事件函数,emit 属性用于触发一个事件。接下来我们来具体看下 EventEmitter 的属性介绍。
addListener(event, listener)
为指定事件添加一个监听器到监听器数组的尾部。
removeListener(event, listener)
移除指定事件的某个监听器,监听器必须是该事件已经注册过的监听器。
它接受两个参数,第一个是事件名称,第二个是回调函数名称。
on(event, listener)
为指定事件注册一个监听器,接受一个字符串 event 和一个回调函数。
按参数的顺序执行每个监听器,如果事件有注册监听返回 true,否则返回 false。
emit(event, [arg1], [arg2], [...])
按参数的顺序执行每个监听器,如果事件有注册监听返回 true,否则返回 false。
按参数的顺序执行每个监听器,如果事件有注册监听返回 true,否则返回 false。
阅读全文
0 0
- Node.js事件机制
- Node.js的事件机制
- node.js的事件机制
- Node.js入门:事件机制
- node.js的事件机制
- node.js 使用事件机制
- Node.js的事件机制
- 深入浅出Node.js(四):Node.js的事件机制
- 深入浅出Node.js(四):Node.js的事件机制
- 深入浅出Node.js(四):Node.js的事件机制
- 深入浅出Node.js(四):Node.js的事件机制
- 【深入浅出Node.js系列四】Node.js的事件机制
- 浅谈node.js 回调函数与事件机制
- 揭秘node.js事件
- node.js 事件乒乓
- Node.js 事件
- Node.js的事件
- Node.js 事件
- 伪基站和空中信息拦截
- Java单元测试工具:JUnit4(二)——JUnit使用详解
- Spring Boot 入门
- caffe中feature提取时做的修改
- Android Studio里面的Build.gradle的详细配置
- Node.js事件机制
- Spring中,applicationContext.xml 配置文件在web.xml中的配置详解
- mac开启sshd服务
- IOS 纯代码实现界面
- C++ STL优先队列(STL堆)
- .htaccess文件对目录下执行任意后缀文件的限制
- 半年融资超过50亿,云计算行业为何如此之火?
- Map做到深拷贝
- 关于括号匹配的算法,自用修改版({,[,()