Nodejs 之 Event 模块

一、概述

  1. events是Node.js最重要的模版,原因是Node.js本身架构就是事件式的,而它提供了唯一的接口。所以是Node.js事件编程的基石。
  2. events模块不仅用于用户代码与Node.js下层事件循环的交互。还几乎被所有的模块依赖。

二、对象

1. events模块只提供了一个对象 events.EventEmitter

2. EventEmitter的核心

  • 事件发射 与 事件监听器 功能的封装。EventEmitter的每个事件由一个事件或若干个参数组成,事件名是一个字符串,通常表达一定的语义。
  • 对于每个事件,EventEmitter支持若干个事件监听器。当事件发射时,注册到这个事件的事件监听器被依次调用, 事件参数作为回调函数参数传递。

3. 常用API的方法

  1. EventEmitter.on(event,listener):为指定事件注册一个监听器,接受一个字符串event和一个回调函数listener
  2. EventEmitter.emit(event,[arg1],[arg2]....):发射event事件,传递若干可选参数到事件监听器的参数表
  3. EventEmitter.once(event,listener) :为指定事件注册一个单次监听器,即监听器最多只会触发一次,触发后立刻解除该监听器。
  4. EventEmitter.removeListener(event,listener):移除指定事件的某个监听器,listener必须是该事件已经注册过的监听器。
  5. EventEmitter.removeAllListeners([event]):移除所有事件的所有监听器,如果指定event,则移除指定事件的所有监听器。
//创建一个EventEmitter对象
let Emitter = require('events').EventEmitter;
//创建一个事件对象
let event = new Emitter();

let fun = ()=>{
    console.log('one事件发生了!')
}
event.on('one',fun);
 event.on('one',()=>{
     console.log('我是监听器2!')
 })
event.once('one',()=>{
    console.log('我是监听器3!')
})
event.removeListener('one',fun)
event.emit('one');
event.emit('one');
event.emit('one');

在这里插入图片描述

三、Node.js的事件循环机制

  1. Node.js在什么时候进入事件循环呢?

    Node.js程序是由事件循环开始,到事件循环结束,所有的逻辑都是事件的回调函数。

  2. 如何使用自定义事件呢?

    事件的回调函数在执行的过程中,可能会发出IO请求或直接发射(emit)事件,执行完毕后再返回事件循环。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值