`

(六)、node.js事件驱动

 
阅读更多

1、事件发射器

events是node.js的核心模块,只提供了一个对象events.EventEmitter,EventEmitter的核心就是事件的发射与事件监听的封装。EventEmitter支持若干个事件的监听,当事件发射的时候,注册到这个事件的监听器依次被调用。下面看一个例子。

var events = require('events');
var emitter = new events.EventEmitter();
emitter.on('someEvent', function(arg1, arg2) {
    console.log('listener1', arg1, arg2);
});
emitter.on('someEvent', function(arg1, arg2) { 
   console.log('listener2', arg1, arg2);
});
emitter.emit('someEvent', 'byvoid', 1991);

运行结果为:

listener1 byvoid 1991
listener2 byvoid 1991

程序先为emitter注册两个事件,然后emitter进行事件的发射,接着监听器被调用。

下面我们来看下EventEmitter常用的API

EventEmitter.on(event,listener),注册事件监听。

EventEmitter.emit(event,arg...),发射事件。

EventEmitter.once(event.listener),监听器只最多被触发一次,出发后立即解除。

EventEmitter.removeListener(event,listener),移除指定的listener。

EventEmitter.removeAllListeners(event),移除所有的监听器。

2、error事件

    EventEmitter定义了一个特殊的事件error,当error发射的时候,EventEmitter规定如果没有响应的监听器,node.js会把它当作异常处理。

    大多是的时候,我们不会直接使用EventEmitter,而是在对象中继承它。原因有两点。首先,具有某个实体功能的对象实现事件符合语意,其次,js支持部分多继承。继承自EventEmitter不会打乱对象原有的继承关系。

分享到:
评论

相关推荐

    Node.js Javascript运行环境(runtime environment)

    Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan Dahl开发,实质是对...Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

    Node.js 开发指南.pdf

    第1章 Node.js简介 1 1.1 Node.js是什么 2 1.2 Node.js能做什么 3 1.3 异步式I/O与事件驱动 4 1.4 Node.js的性能 5 1.4.1 Node.js架构简介 5 1.4.2 Node.js与PHP+Nginx 6 1.5 JavaScript简史 6 ...

    koa 与 node.js 开发实战2

    由于Node.js采用事件驱动、非阻塞I/O和异步输出来提升性能,因此大量I/O密集型的应用也采用Node.js开发。掌握Node.js开发,既能极大地拓宽前端开发者的技术知识面,也能拓展前端开发者的生存空间,从目前前端开发者...

    koa 与 node.js 开发实战完整版

    由于Node.js采用事件驱动、非阻塞I/O和异步输出来提升性能,因此大量I/O密集型的应用也采用Node.js开发。掌握Node.js开发,既能极大地拓宽前端开发者的技术知识面,也能拓展前端开发者的生存空间,从目前前端开发者...

    Node.js参考手册中文CHM版

    资源名称:Node.js参考手册 中文CHM版内容...Node.js是一个事件驱动I/O服务端Javascript环境,基于Google的V8引擎,V8引擎执行Javascript的速度 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    01-Node.js介绍.zip

    课程简介: Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan ...Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

    koa 与 node.js 开发实战1

    由于Node.js采用事件驱动、非阻塞I/O和异步输出来提升性能,因此大量I/O密集型的应用也采用Node.js开发。掌握Node.js开发,既能极大地拓宽前端开发者的技术知识面,也能拓展前端开发者的生存空间,从目前前端开发者...

    node.docx Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,可以用于开发服务

    Node.js 具有非阻塞、事件驱动的特性,使得它非常适合处理 I/O 密集型的应用,如网络应用和实时通讯应用等。 以下是使用 Node.js 的一般步骤: ### 1. 安装 Node.js 首先,您需要在您的系统上安装 Node.js。您...

    Node.js Design Patterns Second Edition领域驱动.zip

    Node.js Design Patterns Second Edition,nodejs领域驱动

    Node.js v14.8.0下载

    Node.js是基于Chrome V8引擎的一键JavaScript运行时,采用单线程、异步IO和时间驱动设计来实现高并发,可以让JavaScript脱离浏览器运行在服务器上,Node.js是目前最大的开源包管理系统,推荐大家开发使用!

    Node.js安装及环境配置.pdf

    Node.js 使用了一个事件驱动、非 阻塞式I/O 的模型,使其轻量又高效。Node.js 的包管理器npm,是全球最 大的开源库生态系统。 2. 下载Node.js 打开官网下载链接:https://nodejs.org/en/download/ 如下图: 四、选择...

    Node.js安装包

    Node Windows 64安装包,Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。...Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

    node.js安装包v8版本

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm

    理解 Node.js 事件驱动机制的原理

    本篇文章主要介绍了理解 Node.js 事件驱动机制的原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    NODE.JS最新版本下载

    简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的...Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。

    Node.js(node-v21.6.0.tar.xz)

    实时Web应用:由于Node.js的异步和事件驱动的特性,它非常适合构建实时Web应用,如在线游戏、实时协作工具等。 API后端:Node.js可以作为API后端,提供数据服务,与前端进行交互。例如,构建RESTful API或GraphQL ...

    后端开发 技术关键词: Node.js与Express框架 内容关键词: 事件驱动的非阻塞I/O

    计算机二级c语言真题后端开发 技术关键词: Node.js与Express框架 内容关键词: 事件驱动的非阻塞I/O ...Node.js的非阻塞I/O和事件驱动模型,使其非常适合处理高并发的实时应用,如在线聊天、实时数据流等。

    Node.js+开发指南

    第1章 Node.js简介 1 1.1 Node.js是什么 2 1.2 Node.js能做什么 3 1.3 异步式I/O与事件驱动 4 1.4 Node.js的性能 5 1.4.1 Node.js架构简介 5 1.4.2 Node.js与PHP+Nginx 6 1.5 JavaScript简史...

    node.js平台搭建

    Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的...

Global site tag (gtag.js) - Google Analytics