Node.JS事件的绑定与触发示例详解

 更新时间:2022年11月11日 15:51:07   作者:坚毅的小解同志  
Node中的事件模型就是我们常见的订阅发布模式,Nodejs核心API都采用异步事件驱动,所有可能触发事件的对象都是一个继承自EventEmitter类的子类实例对象,这篇文章主要给大家介绍了关于Node.JS事件的绑定与触发事件的相关资料,需要的朋友可以参考下

简介

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事件的绑定与触发的文章就介绍到这了,更多相关Node.JS事件绑定与触发内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈如何通过node.js对数据进行MD5加密

    浅谈如何通过node.js对数据进行MD5加密

    本篇文章将主要针对于在NODE.JS中如何对数据进行MD5加密,MD5是一种常用的哈希算法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 参考EventEmitter实现完整订阅发布功能函数

    参考EventEmitter实现完整订阅发布功能函数

    这篇文章主要为大家介绍了参考EventEmitter实现完整订阅发布功能函数示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 用node-webkit把web应用打包成桌面应用(windows环境)

    用node-webkit把web应用打包成桌面应用(windows环境)

    这篇文章主要介绍了windows环境下用node-webkit把web应用打包成桌面应用的教程,需要的朋友可以参考下
    2018-02-02
  • nodejs6下使用koa2框架实例

    nodejs6下使用koa2框架实例

    本篇文章主要介绍了nodejs6下使用koa2框架实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • node将geojson转shp返回给前端的实现方法

    node将geojson转shp返回给前端的实现方法

    这篇文章主要介绍了node将geojson转shp返回给前端的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • node.js中的fs.fchownSync方法使用说明

    node.js中的fs.fchownSync方法使用说明

    这篇文章主要介绍了node.js中的fs.fchownSync方法使用说明,本文介绍了fs.fchownSync方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • node.js实现登录注册页面

    node.js实现登录注册页面

    这篇文章主要为大家详细介绍了node.js实现简单的登录注册页面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 详解Nodejs之npm&package.json

    详解Nodejs之npm&package.json

    本篇文章主要介绍了详解Nodejs之npm&package.json,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 垃圾回收器的相关知识点总结

    垃圾回收器的相关知识点总结

    本文是小编在网络上整理的关于垃圾回收器的相关知识点,很多语言和程序都用的到,有兴趣的可以学习下。
    2018-05-05
  • Dapr+NestJs编写Pub及Sub装饰器实战示例

    Dapr+NestJs编写Pub及Sub装饰器实战示例

    这篇文章主要为大家介绍了Dapr+NestJs编写Pub及Sub装饰器的实战示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论