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)
    }
}
相关推荐
晴天1622 分钟前
Node.js 中 `npm install` 命令分析-Day30
前端·npm·node.js
晴天1627 分钟前
VS Code `launch.json` 指南(Node.js版)-Day30
node.js·json
空の鱼18 小时前
Mac 上 Node 版本管理(brew + nvm 共存方案)
macos·node.js
请你吃div18 小时前
Node 后端项目 Docker 自动部署教程(GitHub + 宝塔 + Self-hosted Runner)
后端·docker·node.js
泠曦れいひ20 小时前
在当前项目中安装Vite
前端框架·npm·node.js
Joseph 乔20 小时前
【NVM】node 和 nvm 卸载(安装 node & nvm & npm & cnpm & yarn 及配置)
npm·node.js
frjc1 天前
Node.js 与 npm 极简安装教程
前端·npm·node.js
水獭比特2 天前
工作流都公开了,为什么还不能继承 Owner 权限?
javascript·人工智能·node.js
冲冲2 天前
nvm-windows的安装
node.js