EventEmitters -> Events -> Event Loop -> Event Handlers

EventEmitters对象产生的实例就是每一个事件,每产生一个事件 都会插入到事件队列里面,然后事件队列会把事件丢给事件循环,事件循环逐个拿出事件找到事件处理句柄,事件处理句柄调用相关的处理函数,处理完一个就会回到事件处理队列当中,然后再进行下一个队列,一直循环下去。
Event Loop每次处理完一个事件就会去取下一个直到事件队列里面没有,它就会休眠一会然后再去检查。
这个模型就是IO驱动模型 也叫事件驱动模型。

事件处理代码流程

  1. 引入events对象,创建eventEmitter对象(事件对象)
  2. 绑定事件处理程序
  3. 触发事件

    事件和事件绑定

    ```javascript // 引入Event模块并创建eventEmitter对象 const events = require(“events”); const eventEmitter = new events.EventEmitter(); // 绑定事件处理的函数 const connectHandler = function connected() { console.log(“connected被调用!”); }; eventEmitter.on(‘connection’, connectHandler);//完成事件绑定 事件名称,事件处理函数的句柄 //触发事件 eventEmitter.emit(‘connection’);

console.log(“程序执行完毕”); ``` connected被调用!
程序执行完毕