你的位置:首页 > 软件开发 > Java > Node.js 事件循环(学习笔记)

Node.js 事件循环(学习笔记)

发布时间:2015-12-20 15:00:05
Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。(来源于Javascript是单线程又是异步的,但是这种语言有个共同的特点:它们是 event-driven 的。驱动它们的 event 来自一个异构的平台。)Node.js 的每一个 API 都 ...

Node.js 事件循环(学习笔记)

Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。事件驱动模型

Node.js 使用事件驱动模型,当webserver接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。

Node.js 事件循环(学习笔记)

整个事件驱动的流程就是这么实现的,非常简洁。有点类似于观察者模式,事件相当于一个主题(Subject),而所有注册到这个事件上的处理函数相当于观察者(Observer)。

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

//引入events模块var 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("程序执行完毕。");
上述的结果正如你想的一样,通过这种事件驱动模型我们就可以实现异步操作的。从上述代码可以看出fs.readFile可以分发事件,当然Node.js里面的许多对象都会分发事件,一个net.Server对象会在每次有新连接时也会分发一个事件, 所有这些产生事件的对象都是 events.EventEmitter 的实例。


 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Node.js 事件循环(学习笔记)

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。