node events事件循环

原创 2016年08月29日 15:35:01

引入event模块:

/*引入模块方式一*/
//引入events模块
var events = require('events');
//创建eventEmitter
var eventEmitter = new  events.EventEmitter();


/*引入模块方式二*/
var EventEmitter = require('events').EventEmitter;
var event = new  EventEmitter();
event.on('some_event',function(){
    console.log('some_event事件触发');
});
setTimeout(function(){
    event.emit('some_event');
},1000);

一个node事件循环的入门例子:

// 引入events模块
var events = require("events");
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
//绑定事件及事件的处理程序
var connectHandler = function connected () {
    console.log('连接成功。');
    //触发事件
    eventEmitter.emit('data_received');
}

//绑定事件及事件的处理程序
eventEmitter.on('connection',connectHandler);

//使用匿名函数绑定data_received事件
eventEmitter.on('data_received',function () {
    console.log('数据接收成功。');
});

//触发connection事件
eventEmitter.emit('connection');
console.log('程序执行完毕。');

打印结果:

连接成功。
数据接收成功。
程序执行完毕

参数的传递:

/*event参数*/
var EventEmitter = require('events').EventEmitter;
var event = new  EventEmitter();
event.on('someEvent',function(arg1,arg2){
    console.log('listener1',arg1,arg2);
});
event.on('someEvent', function(arg1, arg2) {
    console.log('listener2', arg1, arg2);
});
event.emit('someEvent','参数1','参数2');

// addListener

var events = require('events');
var eventEmitter = new events.EventEmitter();

// 监听器 #1
var listener1 = function listener1() {
    console.log('监听器 listener1 执行。');
}
// 监听器 #2
var listener2 = function listener2() {
    console.log('监听器 listener2 执行。');
}
// 绑定 connection 事件,处理函数为 listener1
eventEmitter.addListener('connection',listener1);
// 绑定 connection 事件,处理函数为 listener2
eventEmitter.on('connection', listener2);

var eventListeners = require('events').EventEmitter.listenerCount(eventEmitter,'connection');
console.log(eventListeners + " 个监听器监听连接事件。");

// 处理 connection 事件
eventEmitter.emit('connection');

// 移除监绑定的 listener1 函数
eventEmitter.removeListener('connection', listener1);
console.log("listener1 不再受监听。");
版权声明:本文为博主原创文章,未经博主允许不得转载。

Node.js events模块(一)事件循环

简介 Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。 Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并...

node.js util全局变量 事件驱动events

一、util全局变量         1.util.inherits(constructor,superConstructor)             此方法是一个实现对象间原型继承的函数。ja...

node.js学习(十五、Events事件模块)

通过on注册监听函数,可传递参数const EventEmitter = require('events'); let myEmitter=new EventEmitter(); myEmitter....

Node.Js events模块(二)-EventEmitter自定义操作事件

说明 Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。 Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个f...

node.js 事件循环 异步IO 和 非IO异步

前些天略研究了一下node.js的异步原理,才对node 的处理异步机制有些了解,于是想着写篇博文,一是可以帮助正在学习的猿们,二是也可以巩固自己,如果本文有什么错误的地方,还请各位指出,我会加以改正...

[Node.js]事件循环

摘要 Node.js是单进程单线程应用程序,但是通过事件和回调支持并发,性能也非常高。node.js的每一个api都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。它基本上所有的事件...

web前端之了解node四:事件循环、EventEmitter

web前端之了解node四:事件循环、EventEmitterNode.js 事件循环Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。Node.js 的每一个 AP...

理解 node.js 的事件循环

node.js 的第一个基本观点是,I/O 操作是昂贵的:   目前的编程技术最大的浪费来自等待 I/O 操作的完成。有几种方法可以解决这些对性能的影响(来自 Sam Rushin...

Node.js 事件循环

事件循环

Node.js的事件循环

Node.js的事件机制 Node.js是单进程单线程应用程序,但是痛过事件和回电支持并发。 Node.js的每一个API都是一步的,并作为一个独立的线程运行,使用一步异步函数回调,并处理。 Node...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:node events事件循环
举报原因:
原因补充:

(最多只允许输入30个字)