`

(六)、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开发-Node.js入门.pdf

    * 事件驱动机制: Node.js 使用事件驱动机制来处理请求,每个任务都被当作事件来处理。 Node.js 维护一个事件队列,需执行的每个任务都会加入事件队列,并提供一个包含处理结果的回调函数。 Node.js 的应用场合...

    node.js(v16.16.0) 安装包

    此外,Node.js 内置了事件驱动架构,通过事件循环机制处理异步操作,减少了资源消耗。 V8 引擎的更新也是每次 Node.js 版本升级的重点。在 v16.16.0 中,V8 可能已经包含了最新的优化,比如更快的垃圾回收算法,...

    Node.js By Example

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它以其非阻塞I/O和事件驱动的模型,为构建高性能的网络应用提供了可能。 Node.js的核心特性包括单线程事件循环、异步编程、模块系统以及强大的文件系统操作等...

    node.js 安装包 10.16.3-x64

    Node.js 是一个开源、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码,极大地拓宽了JavaScript的应用领域。10.16.3-x64 版本是 Node.js 的一个稳定版本,适用于64位操作系统。下面将详细...

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

    在Node.js这样的JavaScript平台上应用DDD,可以利用其非阻塞I/O和事件驱动的特性,构建高性能、可扩展的后端系统。 首先,我们需要理解领域驱动设计的基本概念。DDD将软件开发的核心聚焦于业务领域,通过识别业务...

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

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

    Node.js-深入理解Node.js核心思想与源码分析

    Node.js,作为一个基于Chrome V8引擎的JavaScript运行环境,自其诞生以来,就以其高效、异步非阻塞I/O以及事件驱动的特性,迅速在Web开发领域崭露头角。本资料将带你深入探索Node.js的核心思想,并剖析其背后的libuv...

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

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

    node.js安装

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,使用事件驱动、非阻塞式 I/O 模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。在本指南中,我们将详细介绍 Node.js 的安装...

    Node.js初级+进阶

    Node.js的核心特点是事件驱动和非阻塞I/O模型,这使得它在处理大量并发请求时表现优秀。JavaScript在Node.js中被用于编写服务器端代码,借助V8引擎的强大性能,能实现高效的网络应用开发。 ### 2. 安装与配置Node....

    node.js源码 node-v21.0.0.tar.gz

    Node.js通过事件驱动、非阻塞I/O模型,使其轻量且高效,非常适合构建数据密集型的实时应用。 在"node-v21.0.0.tar.gz"这个压缩包中,包含了Node.js的源码,版本为21.0.0。解压后,我们可以深入理解Node.js的核心...

    Node.js资料包,5本电子书籍

    读者将学习如何利用Node.js的非阻塞I/O和事件驱动模型来创建高效、可扩展的网络应用。 2. 《Node.js 开发指南》 这本指南深入讲解了Node.js的核心概念,如模块系统、文件系统操作、HTTP服务器实现,以及如何编写...

    安装node.js.doc

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。安装 Node.js 需要注意以下几点: Node.js 简介 Node.js 是运行在服务端的 JavaScript,...

    koa 与 node.js 开发实战2

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

    Node.JS介紹

    Node.JS是一种非常强大的服务器端JavaScript运行环境,它通过单线程、事件驱动以及非阻塞IO的设计理念,极大地提高了服务器端的处理能力和响应速度。对于构建高性能、高并发的应用程序而言,Node.JS是一个非常理想的...

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

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

Global site tag (gtag.js) - Google Analytics