Node.js  事件循环详解及实例


Posted in Javascript onAugust 06, 2017

 Node.js  事件循环详解及实例

  • Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。
  • Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。
  • Node.js 基本上所有的事件机制都是用设计模式中观察者模式实现。
  • Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数.

Node.js 有多个内置的事件,我们可以通过引入 events 模块,并通过实例化 EventEmitter 类来绑定和监听事件,如下实例:

// 引入 events 模块
var events = require('events');
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();

// 创建事件处理程序
var connectHandler = function connected() {
  console.log(1);

  // 触发 data_received 事件 
  eventEmitter.emit('data_received');
}

// 绑定 connection 事件处理程序
eventEmitter.on('connection', connectHandler);

// 使用匿名函数绑定 data_received 事件
eventEmitter.on('data_received', function(){
  console.log(2);
});

// 触发 connection 事件 
eventEmitter.emit('connection');

console.log(3);

在 Node 应用程序中,执行异步操作的函数将回调函数作为最后一个参数, 回调函数接收错误对象作为第一个参数。

var fs = require("fs")
fs.readFile('input.txt',function(err,data){
if(err)
  console.log(err)
else
  console.log(data.toString())
})
console.log("程序执行完成")

如有疑问,请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
File, FileReader 和 Ajax 文件上传实例分析(php)
Apr 27 Javascript
jQuery 1.8 Release版本发布了
Aug 14 Javascript
js实现幻灯片效果(基于jquery插件)
Nov 05 Javascript
JQuery判断radio是否选中并获取选中值的示例代码
Oct 17 Javascript
javascript中定义类的方法汇总
Dec 28 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
Aug 06 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
Dec 10 Javascript
100行代码理解和分析vue2.0响应式架构
Mar 09 Javascript
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
ES6 系列之 Generator 的自动执行的方法示例
Oct 19 Javascript
vue ssr 实现方式(学习笔记)
Jan 18 Javascript
实例讲解React 组件生命周期
Jul 08 Javascript
Angularjs上传图片实例详解
Aug 06 #Javascript
微信小程序 自定义消息提示框
Aug 06 #Javascript
最通俗易懂的javascript变量提升详解
Aug 05 #Javascript
Vue2.0 vue-source jsonp 跨域请求
Aug 04 #Javascript
js分页之前端代码实现和请求处理
Aug 04 #Javascript
微信小程序 rich-text的使用方法
Aug 04 #Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 #Javascript
You might like
谨慎使用PHP的引用原因分析
2012/09/06 PHP
PHP 7的一些引人注目的新特性简单介绍
2015/11/08 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
Prototype使用指南之enumerable.js
2007/01/10 Javascript
关于图片验证码设计的思考
2007/01/29 Javascript
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
Angular 封装并发布组件的方法示例
2018/04/19 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
vue监听键盘事件的相关总结
2021/01/29 Vue.js
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
家长对孩子评语
2014/01/30 职场文书
行政部岗位职责范本
2014/03/13 职场文书
绵山导游词
2015/02/05 职场文书
2015秋季幼儿园开学寄语
2015/03/25 职场文书
合理化建议书范文
2015/09/14 职场文书
七年级作文之下雨天
2019/12/23 职场文书
Python实战之疫苗研发情况可视化
2021/05/18 Python
Python类方法总结讲解
2021/07/26 Python