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的主要内容,如果未能解决你的问题,请参考以下文章
事件驱动架构 (Event-Driven Architecture,EDA) 简介