11.事件驱动events

Posted AlanTao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11.事件驱动events相关的知识,希望对你有一定的参考价值。

事件驱动events ==> events.EventEmitter, EventEmitter 的核心就是事件发射与事件监听器功能的封装
更详细的 API 文档参见 http://nodejs.org/api/events.html

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  为事件  someEvent 注册了两个事件监听器,然后发射了 someEvent事件。运行结果中可以看到两个事件监听器回调函数被先后调用

1.EventEmitter.on(event, listener) ==> 为指定事件注册一个监听器, 接受一个字符串event和一个回调函数listener
2.EventEmitter.emit(event, [arg1], [arg2], [...]) ==> 发射 event 事件,传递若干可选参数到事件监听器的参数表。
3.EventEmitter.once(event, listener) ==> 单次监听器, 只触发一次
4.EventEmitter.removeListener(event, listener) 移除指定事件的某个监听器,listener必须是该事件已经注册过的监听器。
5.EventEmitter.removeAllListeners([event]) ==> 移除所有事件的所有监听器,如果指定 event ,则移除指定事件的所有监听器。
6.error事件 ==> 我们一般要为会发射error事件的对象设置监听器,避免遇到错误后整个程序崩溃。

var  events = require(‘events‘); 
var  emitter =  new  events.EventEmitter(); 
emitter.emit(‘error‘); 
运行时会显示以下错误: 
node.js:201 
throw e; // process.nextTick error, or ‘error‘ event on first tick 

7.继承EventEmitter
大多数时候我们不会直接使用EventEmitter, 而是在对象中继承它, 包括fs, net, http在内, 只要是支持事件响应的核心模块都是EventEmitter的子类

以上是关于11.事件驱动events的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript ---[事件,Event对象]

Event 事件

事件驱动架构 (Event-Driven Architecture,EDA) 简介

向Windows内核驱动传递用户层定义的事件Event,并响应内核层的通知

Event事件

UEFI.源码分析.DXE的异步事件服务.第一部分.事件驱动