node 的基础api 之 event

本文详细介绍了Node.js中事件发射器(EventEmitter)的使用方法,包括创建、监听、触发事件,以及如何处理错误和移除事件监听器。通过实例讲解了事件的一次性触发和批量移除技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个简单的事件 分为 5 步:

1: 引入 event 内置模块 

const  EventEmitter  = require("events");

2: 生成一个 事件类继承于 event 模块;

class CreateEvent extends EventEmitter{

}

3: 实例化这个模块为具体事件  ;

const ce = new CreateEvent();

4; 监听这个事件 ;

ce.on("test",()=>{
    console.log("this is a test ")
})

5触发这个事件 ;

setInterval(()=>{
      ce.emit("test")
  },5000)

 

可以使用once 方法取代 on方法 这样使得事件 只触发一次;

ce.once("test",()=>{
    console.log("this is a test ")
})

event的 EventEmitter  的error 报错 ;

事实上NodeJS里程确实有“脆弱”的一面,单线程的某处产生了“未处理的”异常确实会导致整个Node.JS的崩溃退出;

const myEmitter = new MyEmitter();
myEmitter.on('error', (err) => {
  console.error('有错误');
});
myEmitter.emit('error', new Error('whoops!'));

 

even 中的事件 的移除 

const  EventEmitter  = require("events");

class EventEmitter1 extends EventEmitter{
}

var e = new EventEmitter1();

function a(){
    console.log('aaaa');
}
function b(){
    console.log('bbbb');
}
e.on('data',a);
e.on('data',b);

e.emit('data',function () {
    //移除data 事件 下的a函数
     e.removeListener("data",a);
    //移除data 事件 下的b函数
     e.removeListener("data",b);
     //移除data 事件下的全部函数
    e.removeAllListeners("data");

});

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值