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)
    }
}
相关推荐
Moshow郑锴11 小时前
Ansible 批量部署 Node.js 服务:ZIP 直解与共享目录分发两种方案对比
node.js·ansible
少年的范儿17 小时前
Windows 安装 Node.js 教程:nvm 版本管理 + pnpm 安装配置
windows·npm·node.js
peach18 小时前
同样是装依赖,为什么 npm 长成 node_modules,Maven 长成 .m2
npm·node.js·maven
FungLeo21 小时前
成为全栈·Go 后端篇·重写之前先锁基线:契约、Node 版本与行为清单
golang·node.js·go·openapi·契约测试·成为全栈
FungLeo2 天前
成为全栈·Go 后端篇·契约一致性与差分测试:两套实现如何互相校验
golang·node.js·go·合约测试·差分测试·成为全栈·api兼容
月夏2 天前
前端第一次接自己的后端:mock 切真接口踩了 2 个坑,组件只改了一行 import
前端·后端·node.js
SEO_juper2 天前
Node.js 页面主题聚焦度检测:title 和正文各说各的,AI 也读不懂
开发语言·人工智能·node.js·seo·外贸独立站
SEO_juper2 天前
Node.js 重定向链检测工具:301 跳了几跳、有没有成环,一次看清
xml·开发语言·python·node.js·json·bash
king13598745503 天前
AI Agent 端云协同选型:Node.js 任务成本算例与权限检查清单(2027—2028 展望)
人工智能·ai·node.js·ai agent
居里先生7523 天前
PDF 批注到底存在文件的哪里?从 /Annots 讲到导出验证
node.js