当前位置: 首页 > news >正文

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

往期文章

【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', '小解');

相关文章:

  • 【微服务】微服务万字实战,带你了解工程原理
  • MySQL面试50题【mysql】
  • 【消息中间件】RocketMQ设计浅析
  • C语言学习完后,C++与Java我应该怎么选择
  • SpringCloud Bus消息总线
  • 图形学-反走样/抗锯齿
  • 2.1.5操作系统之线程概念与多线程模型
  • Spring中的AOP概念介绍使用、AOP相关术语、切入点表达式(面向切面编程上篇)
  • heic图片转换
  • 数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(2)
  • 2017年某高校848数据结构真题复习
  • python正态分布中的normal函数
  • 场景金融持续引发行业关注,4.0时代打造金融服务新生态
  • 大数据面试重点之mysql篇
  • 【网络安全篇】JavaSript基础内容大全
  • .pyc 想到的一些问题
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 5、React组件事件详解
  • Angular数据绑定机制
  • Iterator 和 for...of 循环
  • js ES6 求数组的交集,并集,还有差集
  • leetcode386. Lexicographical Numbers
  • nodejs实现webservice问题总结
  • October CMS - 快速入门 9 Images And Galleries
  • spring boot下thymeleaf全局静态变量配置
  • 分布式任务队列Celery
  • 构建二叉树进行数值数组的去重及优化
  • 好的网址,关于.net 4.0 ,vs 2010
  • 基于HAProxy的高性能缓存服务器nuster
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • Java总结 - String - 这篇请使劲喷我
  • 组复制官方翻译九、Group Replication Technical Details
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​iOS安全加固方法及实现
  • #Lua:Lua调用C++生成的DLL库
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • $.ajax()
  • (Java)【深基9.例1】选举学生会
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (zhuan) 一些RL的文献(及笔记)
  • (六)Hibernate的二级缓存
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)h264中avc和flv数据的解析
  • (转)Scala的“=”符号简介
  • (转)程序员技术练级攻略
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET6使用MiniExcel根据数据源横向导出头部标题及数据
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .net实现客户区延伸至至非客户区
  • .NET中 MVC 工厂模式浅析
  • .skip() 和 .only() 的使用
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析