您现在的位置是:首页 > 编程语言学习 > 其他编程语言 > 文章正文 其他编程语言

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

2022-11-12 10:12:25 其他编程语言

简介node.js的事件是使用events模块,通过实例化它里面的EventEmitter类,来绑定和监听事件。EventEmitter,它的每个事件都是由1.事件名,是一...

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

EventEmitter,它的每个事件都是由

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

2.诺干个参数。

绑定事件

on()

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

查看绑定的事件

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

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

addListener()

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

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

once()

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

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

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

监听事件emit()

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

通过emit来进行触发事件。

传参

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

删除事件

removeListener()

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

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

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

removeAllListeners()

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

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

相关文章

站点信息