【Node.JS】事件的绑定与触发

news2024/10/7 16:20:07

往期文章

【Node.JS】写入文件内容

【Node.JS】读取文件内容

目录

简介

绑定事件

on()

addListener()

         once()

监听事件emit()

 传参

 删除事件

removeListener()

 removeAllListeners()


简介

node.js的事件是使用events模块,通过实例化它里面的EventEmitter类,来绑定和监听事件。

EventEmitter,它的每个事件都是由

1.事件名,是一个字符串。

2.诺干个参数。

绑定事件

on()

const eve = require("events");
//导入模块
var event = new eve.EventEmitter();
//进行实例化声明
event.on('namea', function () {
    console.log("坚毅的小解同志");
})

查看绑定的事件

const eve = require("events");
//导入模块
var event = new eve.EventEmitter();
//进行实例化声明
event.on('namea', function () {
    console.log("坚毅的小解同志");
})
//查看对象属性 里面有绑定的事件
console.log(event);

 里面有事件具体的属性,和事件的数量。

addListener()

除了使用on之外,我们还可以使用这个属性,和on并没有什么区别。

const eve = require("events");
//导入模块
var event = new eve.EventEmitter();
//进行实例化声明
event.addListener('namea', function (a) {
    console.log(`坚毅的${a}同志`);
})
//触发事件冰川入参数
event.emit('namea', '小解');

 once()

once 只会绑定一次性的触发事件,触发一次后就会解除绑定。

const eve = require("events");
//导入模块
var event = new eve.EventEmitter();
//进行实例化声明  on  once addListener
event.once('namea', function (a) {
    console.log(`坚毅的${a}同志`);
})
//触发事件冰川入参数
event.emit('namea', '小解');
event.emit('namea', '小解');

 我们触发两次,但只会显示一次的结果。

监听事件emit()

const eve = require("events");
//导入模块
var event = new eve.EventEmitter();
//进行实例化声明
event.on('namea', function () {
    console.log("坚毅的小解同志");
})
//触发事件
event.emit('namea');

通过emit来进行触发事件。

 传参

const eve = require("events");
//导入模块
var event = new eve.EventEmitter();
//进行实例化声明
event.on('namea', function (a) {
    console.log(`坚毅的${a}同志`);
})
//触发事件冰川入参数
event.emit('namea', '小解');

 删除事件

removeListener()

 删除指定事件的指定监听器

const eve = require("events");
const { removeListener } = require("process");
//导入模块
var event = new eve.EventEmitter();
//进行实例化声明  on  once addListener
let name = function (a) {
    console.log(`坚毅的${a}同志`);
}
let name2 = function (a) {
    console.log(`坚毅的${a}同志`);
}
event.once('namea', name)
event.once('namea', name2)
//触发事件冰川入参数
event.removeListener('namea', name)
event.emit('namea', '小解');

删除 namea事件中的name属性,设置两个,删除了一个name,只留下了name2的结果。

 removeAllListeners()

删除所有的事件监听属性,只需要写事件名,里面的监听属性都会被删除。

const eve = require("events");
const { removeListener } = require("process");
//导入模块
var event = new eve.EventEmitter();
//进行实例化声明  on  once addListener
let name = function (a) {
    console.log(`坚毅的${a}同志`);
}
let name2 = function (a) {
    console.log(`坚毅的${a}同志`);
}
event.once('namea', name)
event.once('namea', name2)
//触发事件冰川入参数
event.removeAllListeners('namea')
event.emit('namea', '小解');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【无人机】基于蚁群算法的无人机航路规划研究附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

【笔试题】【day14】

目录 第一题(哪些成员变量需要在初始化列表初始化) 第二题(多态的条件) 第三题(多态的条件(通过父类对象调用的全部都是父类的方法)) 第四题(菱形继承,虚…

猴子也能学会的jQuery第一期——什么是jQuery

#1024程序员节|用代码,改变世界 📚系列文章—目录🔥 猴子也能学会的jQuery第一期——什么是jQuery 猴子也能学会的jQuery第二期——引入jQuery 未完待续 目录 📚系列文章—目录🔥 📄需要具备的…

【最佳实践】瀚高数据库 Windows企业版v6.0.4 的安装

Windows7、Windows10 一、安装 解压缩文件“hgdb6.0.4-enterprise-windows10-x86-64-20220127.zip”,以【管理员】身份运行 setup.exe。 安装过程基本上是下一步下一步即可,注意步骤如下。 1.1 安装主目录 注意安装路径,不要包含中文&am…

【创作中心】自定义模板的使用

个人主页:天寒雨落的博客_CSDN博客-初学者入门C语言,数据库,python领域博主 💬 刷题网站:一款立志于C语言的题库网站蓝桥杯ACM训练系统 - C语言网 (dotcpp.com) 特别标注:该博主将长期更新c语言内容,初学c语言的友友们…

2022年12月1日起,OCS将停止接受GOTS的原料投入

【2022年12月1日起,OCS将停止接受GOTS的原料投入】 GOTS介绍; 全球有机纺织品标准,Global Organic Textile Standard, 简称GOTS。该标准由国际天然纺织品协会(IVN)、日本有机棉协会(JOCA)&#…

数字化智慧梁场管理系统解决方案

系统介绍 数字化智慧梁场管理系统实现对预制构件生产的全周期智慧化管理。系统以BIM为基础,搭建完整数字孪生模型,依据生产工序智能排程;围绕生产工序,生产任务智能传递,协同工作;依据生产工序,…

Python实战:获取bing必应壁纸首页的每日一图(仅做学习用)

目录需求网站分析代码实现进一步接口获取其他资源需求 老板:微软必应https://cn.bing.com/ 首页的每日一图看着不错,能不能自动获取 我:我试试 网站分析 我们查看网页元素,不难发现背景图就在类名为.img_cont 的标签下 可是搜…

Vitepress搭建组件库文档(下)—— 组件 Demo

上文 《Vitepress搭建组件库文档(上)—— 基本配置》已经讨论了 vitepress 搭建组件库文档的基本配置,包括站点 Logo、名称、首页 home 布局、顶部导航、左侧导航等。本文进入最重要的部分 —— 如何像 Element Plus 那样一遍代码就可以展示组…

面试查漏补缺--java基础-容器源码解读

前言: 本文主要是通过源码来解读一些自己还不懂的地方,一些数据结构上的东西,不做过多的解读。 文章目录一、容器体系二、List容器2.1 ArrayList源码2.2 Vector 源码2.3 LinkedList三、Set容器3.1 HashSet一、容器体系 容器总的来说分为两大…

小小博客项目(servlet实战演练)

目录 MVC模式简介 项目概述 🍑Model(模型层) 🍑View(视图层) 🍑Controller(控制器层) 项目实战 上面pom.xml代码参考 一、模型层 🌰User代码:对应数据…

什么是NFS?NFS挂载

文章目录1、NFS服务2、RPC服务与NFS3、NFS的优缺点4、NFS服务端的搭建与配置5、小结1、NFS服务 NFS,全称Network File System,即网络文件系统。最大的功能是通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。 😉 更直白…

Go语言开发k8s-05-ConfigMap操作

文章目录1. 结构体1.1 ConfigMapList1.2 ConfigMap1.3 TypeMeta1.4 ObjectMeta1.7 对照yml文件示例1.5 Immutable1.6 Data1.7 BinaryData2. Create configMap语法完整示例3. Get ConfigMapList语法完整示例4. Get ConfigMap语法完整示例5. Update ConfigMap语法完整示例6. Dele…

【网络篇】第二篇——IP协议与MAC地址详解

IP协议 理解源IP地址和目的IP地址 网段划分 IP地址的数量限制 私有IP地址和公网IP地址 路由 NAT(网络地址转换) ​编辑NAT IP转换过程 NAPT MAC地址 理解源MAC地址和目的MAC地址 对比理解MAC地址和IP地址 只有一个MAC地址,可以传输数据嘛? 为什么有了…

网络原理——网络层与数据链路层

JavaEE传送门JavaEE 网络原理——No.3 传输层_TCP的滑动窗口, 流量控制与拥塞控制 网络原理——No.4 传输层_TCP协议中的延迟应答, 捎带应答, 面向字节流与TCP的异常处理 目录网络层IP 协议IP 地址路由选择数据链路层以太网网络层 网络层做的工作, 就是两点之间, 规划出一个合…

python基于PHP+MySQL的健身房管理系统

随着时代的发展人们人们对身体不健康越来越重视。身体是革命的本钱,所以只有有一个好的身体才能够积极地参加到工作和学习中去。当前社会生活节奏较快人们往往没有时间进行锻炼于是造成了很多富贵病以及办公室职业病的发生。这是一种极其不健康的生活方式,我为了能够让这些亚健…

坚持记账的5大好处,你知道吗?

记账可以理清生活开支,有效节流通过记账,每时每刻都能知道自己的财务状况,花钱的时候会更有目的与计划,不像以前手忙脚乱一团糟,也不再寅吃卯粮,随意透支。对于很多不知道钱花到哪里去的人来说,…

SpringBoot(自定义注解)

目录 1.注解的概念 1.1 什么是注解 1.2 java注解分类 1.3 JDK基本注解 1.4 JDK元注解 2.自定义注解 2.1 自定义注解的组成 2.2 如何自定义注解 2.3 案例 2.3.1 简单了解基本属性 2.3.2 获取类与方法上的注解值 2.3.3 获取类属性上的注解属性值 2.3.4 获取参数修饰注解对应的属…

MQTT X v1.8.3 正式发布

近日,MQTT X 发布了最新的 1.8.3 版本,主要对功能使用进行了优化,并修复了使用过程中所出现的各类问题。例如,优化了 MQTT 5.0 Clean Start 的使用方式,为会话过期间隔添加默认值;优化 MQTT X CLI 的默认输…

数据结构与算法分析之并查集

1. 并查集 并查集是一种树型的数据结构,并查集可以高效的进行如下操作: 查询元素p和元素q是否属于同一组合并元素p和元素q所在的组 1.1 并查集结构 并查集是一种树型结构,但这棵树和我们之前学的二叉树、红黑树、B树等都不一样&#xff…