写点什么

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

  • 2022-11-22
    河北
  • 本文字数:1427 字

    阅读完需:约 5 分钟

 简介

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 addListenerevent.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 addListenerlet 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 addListenerlet 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', '小解');
复制代码


点击并拖拽以移动



点击并拖拽以移动

​编辑

用户头像

还未添加个人签名 2022-10-14 加入

还未添加个人简介

评论

发布
暂无评论
【Node.JS】事件的绑定与触发_node.js_坚毅的小解同志_InfoQ写作社区