`
单眼皮大娘
  • 浏览: 112660 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

nodejs 事件驱动编程例子

阅读更多
相信nodejs会越来越成功

在学习Nodejs强大有两处: Event-driven, Asynchronous I/O callback.Nodejs服务器发的 程序是单线程方式,这就要求其对于block 类型的I/O要异步处理,而对于计算密集型的代码,也要进行对线程编程,这里简单的写个nodejs Event-driven的小例子.


var events = require('events');
var util = require('util');

// The Thing That Emits Event
Eventer = function(){
	
  events.EventEmitter.call(this);
  
  this.kapow = function(){
    var data = "BATMAN";
    this.emit('blamo', data);
  },

  this.bam = function(){
     this.emit("boom");
  };
};

util.inherits(Eventer, events.EventEmitter);
// The thing that listens to, and handles, those events

Listener = function(){
  this.blamoHandler =  function(data){
    console.log("** blamo event handled");
    console.log(data);
  },
  this.boomHandler = function(data){
    console.log("** boom event handled");
  };

};

// The thing that drives the two.
var eventer = new Eventer();
var listener = new Listener(eventer);
eventer.on('blamo', listener.blamoHandler);
eventer.on('boom', listener.boomHandler);

eventer.kapow();
eventer.bam();

/*function add(a, b)
{
	console.log('a + b: ' + (a + b) );
}

function sub(a, b)
{
	console.log('a - b' + (a - b));
}

add.call(sub, 3, 1);
*/

//result: 4

/*function Class1() 
{ 
    this.name = "class1"; 

    this.showNam = function() 
    { 
        console.log(this.name); 
    }; 
} 

function Class2() 
{ 
    this.name = "class2"; 
} 

var c1 = new Class1(); 
var c2 = new Class2(); 

c1.showNam.call(c2); */

//result: class2

/*function Class1() 
{ 
    this.showTxt = function(txt) 
    { 
        console.log(txt); 
    }; 
} 

function Class2() 
{ 
    Class1.call(this); 
} 

var c2 = new Class2(); 

c2.showTxt("cc");*/

//result: cc.








输出结果:

** blamo event handled
BATMAN
** boom event handled



分享到:
评论

相关推荐

    nodejs例子

    1. **异步编程**:Node.js 的核心特性之一就是它的非阻塞I/O模型,基于事件驱动。这使得 Node.js 在处理大量并发请求时表现出色,因为它不会因为等待I/O操作完成而阻塞其他任务。例如,文件读写、网络请求等操作都是...

    Nodejs中自定义事件实例

    在Node.js中,事件驱动是其核心特性之一,它使得程序可以高效地处理异步操作。自定义事件是扩展这一特性的关键,允许开发者根据需求创建自己的事件来触发特定的操作。下面我们将深入探讨如何在Node.js中实现自定义...

    nodejs案例

    学习这个案例可以帮助我们掌握 Node.js 的基本用法,包括文件操作、数据解析、事件驱动编程以及异步处理等核心技能。此外,还可以了解到如何利用现有的开源库来解决实际问题,提升开发效率。通过深入分析和实践,...

    NodeJs+MongoDB实例

    在IT行业中,Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程。MongoDB则是一种流行的开源、无模式的分布式文档数据库,常用于构建高性能、可扩展的数据驱动的...

    一个前端工程师眼里的NodeJS.docx

    总结来说,NodeJS的单线程模型虽然在CPU密集型任务上存在限制,但通过异步I/O、事件驱动编程以及子进程和集群技术,NodeJS能够有效地处理高并发的网络应用,并充分利用多核CPU资源。这种设计使得NodeJS特别适合于...

    nodejs+jsonrpc

    Node.js利用非阻塞I/O和事件驱动模型,使得它可以高效地处理大量的并发连接,非常适合构建网络服务和实时应用。 **JSON-RPC协议:** JSON-RPC允许客户端通过一个简单的JSON对象结构发起请求,该对象包含方法名、...

    nodejs:nodejs实例代码

    Node.js 使用了一个事件驱动、非阻塞 I/O 模型,使其轻量又高效,非常适合构建数据密集型的实时应用。 在 "nodejs:nodejs实例代码" 的主题下,我们可以探讨以下几个Node.js的核心知识点: 1. **事件驱动模型**:...

    Nodejs Socket io Mysql Demo

    - **事件驱动编程**:Node.js的核心设计是基于事件驱动模型,这使得它能高效地处理大量并发连接。 - **非阻塞I/O**:Node.js的异步处理方式避免了线程上下文切换的开销,提高了性能。 2. **Socket.IO介绍** - **...

    nodejs实战pdf+源码_nodejs_nodejs实战pdf+源码_

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其异步、事件驱动的非阻塞I/O模型而著名,特别适合用于构建高效、可伸缩的网络应用。这本书籍将带领读者深入理解Node.js的核心概念和最佳实践,包括但不...

    最新版nodeJs

    1. **事件驱动模型**:Node.js 使用非阻塞I/O模型,基于事件驱动,这使得它非常适合处理大量并发连接,例如在构建高并发的Web服务时。 2. **npm(Node Package Manager)**:Node.js的包管理器,用于安装和管理第三...

    一个前端工程师眼里的NodeJS.pdf

    事件驱动编程允许开发者专注于业务逻辑,而不必深入底层线程管理的复杂性。这种编程模型模拟了现实世界中的并发行为,如家庭主妇同时处理两道菜,她可以在等待黄瓜冷却的同时准备另一道菜,而不是顺序执行每一步。 ...

    nodejs运行机制及RSS爬虫实例分享.pdf

    Node.js 的核心特点包括模块机制、异步 I/O、事件驱动机制以及遵循 CommonJS 规范的模块系统。由于其在服务器端的优势,Node.js 逐渐成为开发者喜爱的平台之一。 模块机制是 Node.js 中的一个核心概念。Node.js ...

    Nodejs入门经典

    Node.js是一款基于Chrome V8引擎的JavaScript运行环境,它以其异步非阻塞I/O和事件驱动的模型,为构建高性能网络应用提供了强大的支持。本资源"Nodejs入门经典"旨在帮助初学者快速掌握Node.js的基础知识和实际应用。...

    nodejs安装包

    5. **开始编程**:一旦安装成功,用户就可以开始编写 Node.js 代码,利用它的非阻塞 I/O 和事件驱动特性创建高性能的网络应用程序,如Web服务器、实时通信应用等。 Node.js 支持多种编程模式,包括命令行脚本、创建...

    后端基本代码nodejs+mongdb

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它以其异步非阻塞I/O和事件驱动的特性,在服务器端编程领域得到了广泛应用。MongoDB则是一个开源的文档数据库系统,它使用JSON格式的文档存储数据,具有高灵活...

    nodeJs开发文档

    1. **Node.js基础**:Node.js的核心特性是其事件驱动、非阻塞I/O模型,这使得它在处理高并发请求时表现出色。文档可能介绍了如何安装Node.js,创建第一个“Hello, World!”程序,以及Node.js的全局对象和基本数据...

    [NodeJs]入门经典

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它以其高效、非阻塞I/O和事件驱动的特性在服务器端编程领域崭露头角。Node.js 的出现使得开发者可以用 JavaScript 这种前端语言进行后端开发,极大地提高...

    nodejs中实现阻塞实例

    在实际开发中,推荐在处理异步操作时采用异步编程模式,例如使用Promise或者async/await语法,这些模式可以让异步代码看起来更接近于同步代码,同时保持了Node.js非阻塞和事件驱动的特性。 Node.js中的阻塞通常不是...

Global site tag (gtag.js) - Google Analytics