【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', '小解');
【Node.JS】事件的绑定与触发相关推荐
- Linux事件循环阻塞,深入浅析Node.js 事件循环、定时器和process.nextTick()
什么是事件循环 尽管JavaScript是单线程的,但通过尽可能将操作放到系统内核执行,事件循环允许Node.js执行非阻塞I/O操作. 由于现代大多数内核都是多线程的,因此它们可以处理在后台执行的多 ...
- 如何构建自定义 Node.js 事件发射器
事件是具有软件或硬件意义的动作. 它们是由于用户活动(例如鼠标单击或击键)或直接来自系统(例如错误或通知)而发出的. JavaScript 语言使我们能够通过在事件处理程序中运行代码来响应事件. 由于 ...
- node.js 事件循环
node.js是单线程的应用程序,但是他可能通过event和callback来支持并发.所有的node.js都是单线程的,也是异步的,他们使用调用异步函数来维持高并发.Node使用观察者模式.Node ...
- 八七、Node.js事件循环与多进程
nodejs事件循环与多进程 why 事件循环对于深入理解nodejs异步至关重要 fs, net,http,events 事件循环是企业面试中的最高频考题之一 能驾驭nodejs多进程是一名资深前端 ...
- js 事件(绑定、解绑、三个阶段、相关方法)
事件绑定与解绑: DOM0级事件(这类事件可以使用 return false来阻止事件往下执行,包含默认事件) 绑定: html内<input οnclick=''> js中el.οncl ...
- js事件重复绑定问题
先看一个简单的例子吧(为了方便,例子使用jQuery写的): <!doctype html> <html lang="en"> <head>&l ...
- JS事件的绑定和解绑
/* 事件三要素 1.事件源:在谁的身上绑定事件 2.事件类型:什么事件 3.事件处理函数:当行为发生的时候,执行那一个函数 ==>div.οnclick=function(){} ==> ...
- Node.js中事件的循环
Node.js 事件循环 Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高. Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用, ...
- 在Node.js中使用事件,监听器,定时器和回调
Node.js通过其强大的事件驱动模型提供了可扩展性和性能,本篇文章的重点是理解该模型,以及它是如何不同于大部分Web服务器采用的传统线程模型的.了解事件模型至关重要,因为它可能迫使你改变设计应用程序 ...
最新文章
- [动态dp]线段树维护转移矩阵
- 运维Linux redis,系统运维|如何在 CentOS 7 上安装 Redis 服务器
- 服务器供电系统图,【科·堂】图解5G和数据中心电源制式
- spring logback mysql_logback 日志输出格式
- Uboot启动全过程
- Android入门(15)| 网络
- 小米CC9 Pro同款一亿像素摄像头有望被三星Galaxy S11采用
- 刚装的系统没有sql server(mssqlserver)_数据库与SQL学习
- 美国数据不佳美元仍跳升,只因欧元区问题更多
- javascript编写acm算法题
- javascript综合
- 使用kvm部署虚拟化服务器,KVM虚拟化(KVM的部署及使用)
- 电磁阀peakhold驱动
- 【哈密顿图】算法分析
- HTML5+CSS3制作透视正方体
- Silverlight游戏设计(Game Design):(十三)帝国时代II (Demo) 之 “战争艺术”②
- (史上最全总结)总体方差,样本方差,标准差,抽样方差,标准误差,均方误差,协方差 ...........
- iOS Keychain和keychain share
- PHP调用IMAP协议读取邮件类库
- ASp.net动态加载js和css文件
热门文章
- 会声会影X8 一打开就提示Corel VideoStudio 已停止工作的解决办法
- 谷歌浏览器所有版本下载_我下载了Google了解我的所有信息
- android图片晃动动画,剖析Android动画(图片闪烁、左右摇摆、上下晃动等效果)
- 阿里平头哥发布RISC-V高能效处理器玄铁C908,打造端云一体生态
- 矩阵范数、矩阵序列相关的题
- Tomcat源码笔记(八)Context
- 京东新品情报局剧透OPPO K10系列 或联动国漫IP带来惊喜?
- python将字符串转换成list或dict对象的方法
- 信号各种变换 python实现 DFT,STFT,CWT,DWT
- 5G时代到来,为什么运营商都在全力布局微基站?