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)
    }
}
相关推荐
幸运小圣11 小时前
Buffer 新手入门【Node.js】
node.js·编辑器·vim
jj_ccwgw14 小时前
从 0 到 1 搭建 pnpm + Workspaces + Turborepo Monorepo 保姆级指南
前端·node.js
梦想平凡15 小时前
棋牌游戏技术实战(一):用 Node.js 实现房间消息队列、请求幂等与断线恢复
游戏·node.js
小天源16 小时前
GEO 品牌监测系统实战:基于 Node.js + Playwright 实现多平台采集与报告导出
人工智能·node.js·geo·品牌检测·ai诊断
damoluomu16 小时前
Directus 换掉 GPL 之后,Node.js CMS 到底怎么选?(一)
node.js
guslegend1 天前
脚手架入门:必要性、核心功能与执行原理
前端·架构·node.js·脚手架·前端工程化
HaipengYu2 天前
深度解密 OpenCode 2 插件加载机制:Dual-Version (V1/V2) 适配实战与官方文档的“隐形陷阱”
node.js
前端之虎陈随易3 天前
bm2,Node.js 与 Bun 项目部署新选择
node.js
梦帮科技4 天前
【3.0修订版】 RNS 代币架构:ERC20 五件套扩展与六钱包分配
数据结构·后端·算法·架构·node.js·区块链·php
niyongsheng4 天前
后端零改动,给若依换一套现代化前端
vue.js·开源·node.js