title: nodejs事件驱动机制
date: 2020-08-11 17:07:37
tags: node
事件驱动模型
image.pngjs是单进程单线程的程序,只能通过事件和回调,实现并发的效果,没有多线程的额外工作,所以性能比较高;
所有的api都是异步执行的。
几乎所有的事件依据都是通过观察者模式实现的。
每产生一个事件,都放进事件队列里,执行事件处理的函数。然后再回到事件队列取出下一个事件。
如果事件队列里没有事件,事件循环会休眠一小段时间再去检查
事件处理代码流程
1.引入events对象,创建eventEmitter对象(事件对象)
2.绑定事件处理程序,把对象和处理函数绑定到一起
3.触发事件
// 引入event模块并创建eventEmitter对象
var events = require('events');
var eventEmitter = new events.EventEmitter();
//绑定事件处理函数
var connectHandler = function connected(){
console.log('conected被调用')
}
eventEmitter.on('connection', connectHandler()) // 完成事件绑定
// 触发事件
eventEmitter.emit('connection')
console.log('程序执行完毕')
网友评论