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 维护一个事件队列,需执行的每个任务都会加入事件队列,并提供一个包含处理结果的回调函数。 Node.js 的应用场合...
此外,Node.js 内置了事件驱动架构,通过事件循环机制处理异步操作,减少了资源消耗。 V8 引擎的更新也是每次 Node.js 版本升级的重点。在 v16.16.0 中,V8 可能已经包含了最新的优化,比如更快的垃圾回收算法,...
Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它以其非阻塞I/O和事件驱动的模型,为构建高性能的网络应用提供了可能。 Node.js的核心特性包括单线程事件循环、异步编程、模块系统以及强大的文件系统操作等...
Node.js 是一个开源、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码,极大地拓宽了JavaScript的应用领域。10.16.3-x64 版本是 Node.js 的一个稳定版本,适用于64位操作系统。下面将详细...
在Node.js这样的JavaScript平台上应用DDD,可以利用其非阻塞I/O和事件驱动的特性,构建高性能、可扩展的后端系统。 首先,我们需要理解领域驱动设计的基本概念。DDD将软件开发的核心聚焦于业务领域,通过识别业务...
实时Web应用:由于Node.js的异步和事件驱动的特性,它非常适合构建实时Web应用,如在线游戏、实时协作工具等。 API后端:Node.js可以作为API后端,提供数据服务,与前端进行交互。例如,构建RESTful API或GraphQL ...
Node.js,作为一个基于Chrome V8引擎的JavaScript运行环境,自其诞生以来,就以其高效、异步非阻塞I/O以及事件驱动的特性,迅速在Web开发领域崭露头角。本资料将带你深入探索Node.js的核心思想,并剖析其背后的libuv...
Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan Dahl开发,实质是对...Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,使用事件驱动、非阻塞式 I/O 模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。在本指南中,我们将详细介绍 Node.js 的安装...
Node.js的核心特点是事件驱动和非阻塞I/O模型,这使得它在处理大量并发请求时表现优秀。JavaScript在Node.js中被用于编写服务器端代码,借助V8引擎的强大性能,能实现高效的网络应用开发。 ### 2. 安装与配置Node....
Node.js通过事件驱动、非阻塞I/O模型,使其轻量且高效,非常适合构建数据密集型的实时应用。 在"node-v21.0.0.tar.gz"这个压缩包中,包含了Node.js的源码,版本为21.0.0。解压后,我们可以深入理解Node.js的核心...
读者将学习如何利用Node.js的非阻塞I/O和事件驱动模型来创建高效、可扩展的网络应用。 2. 《Node.js 开发指南》 这本指南深入讲解了Node.js的核心概念,如模块系统、文件系统操作、HTTP服务器实现,以及如何编写...
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。安装 Node.js 需要注意以下几点: Node.js 简介 Node.js 是运行在服务端的 JavaScript,...
由于Node.js采用事件驱动、非阻塞I/O和异步输出来提升性能,因此大量I/O密集型的应用也采用Node.js开发。掌握Node.js开发,既能极大地拓宽前端开发者的技术知识面,也能拓展前端开发者的生存空间,从目前前端开发者...
Node.JS是一种非常强大的服务器端JavaScript运行环境,它通过单线程、事件驱动以及非阻塞IO的设计理念,极大地提高了服务器端的处理能力和响应速度。对于构建高性能、高并发的应用程序而言,Node.JS是一个非常理想的...
由于Node.js采用事件驱动、非阻塞I/O和异步输出来提升性能,因此大量I/O密集型的应用也采用Node.js开发。掌握Node.js开发,既能极大地拓宽前端开发者的技术知识面,也能拓展前端开发者的生存空间,从目前前端开发者...