node event模块

events模块是Node.js最核心的模块之一,很多模块都继承了它。node.js采用事件驱动架构,几乎所有的异步I/O操作完成时都会触发事件。

一 EventEmitter

EventEmitter是events模块的核心类

javascript 复制代码
emitter.on(event, listener)    //监听事件,可以多次绑定
emitter.once(event, listener)  //只监听一次
emitter.off(event, listener)  //移除监听器
emitter.emit(event, ...args)   //触发事件
emitter.addlistener()  //同on
emitter.removeListener  //同off
emitter.removeAllListeners()  //移除所有监听器
emitter.listenerCount(event)  //获取某事件的监听器的数量
emitter.eventNames()  //获取所有已注册的事件名

二 事件循环的顺序

1 同步代码执行

2 Promise.then()

3 定时器(setTimeouot)

4 I/O事件

5 setImemediate

三 实际应用

HTTP 服务器: 'server.on('request', callback)'

流:'stream.on('data', callback)、stream.on('end', callback)'

文件监听:'watcher.on('change', callback)'

进程: 'process.on('exit', callback)'

四 自定义事件

javascript 复制代码
class Order extends EventEmitter{
    place(orderInfo){
        this.emit('placed', orderInfo)
    }
}
相关推荐
65岁退休Coder17 小时前
PI Agent 开发一个生产级 Harness
后端·node.js·agent
szephyr18 小时前
WebSocket 实战:心跳、断线重连、鉴权,一次讲清
前端·websocket·node.js·长连接·实时通信
秋秋小事19 小时前
node postgreSQL的select与include
node.js
ID346107442019 小时前
【课程设计】基于Spring Boot+Vue的游戏账号租赁系统的设计与实现-计算机毕设 附源码50345
javascript·vue.js·spring boot·python·node.js·php·课程设计
柚yuzumi19 小时前
彻底搞懂 JavaScript 类型转换:显式转换、隐式转换与 ToPrimitive
前端·javascript·node.js
cpolar技术支持1 天前
本地登录正常,公网却掉线?Express Session 经 cpolar HTTPS 访问的 Cookie 排障实战
node.js·express·cpolar·cookie·session
秋秋小事1 天前
node prisma+postgreSQL数据库事务
node.js
badhope1 天前
C++、Node.js、Python 写最小 HTTP 服务谁快?我实测了 6 万次请求
node.js
console.log('npc')1 天前
03 — 核心框架:App 与中间件
后端·node.js·express
云浪1 天前
从 0 手写一个 MCP Server:让 Copilot 调用 Tool 完成四则运算
javascript·node.js·mcp