# 模块概览
events模块是node的核心模块之一,几乎所有常用的node模块都继承了events模块,比如http、fs等。
模块本身非常简单,API虽然也不少,但常用的就那么几个,这里举几个简单例子。
# 基础例子
下面一共是6个例子,都非常简单,可以直接拷贝出来运行。例子5比较有意思,虽然也并不复杂,但确实是容易记错的点,感兴趣的同学可以看下。
# 例子1:单个事件监听器
var EventEmitter = require('events');
class Man extends EventEmitter {}
var man = new Man();
man.on('wakeup', function(){
console.log('man has woken up');
});
man.emit('wakeup');
// 输出如下:
// man has woken up
@前端进阶之旅: 代码已经复制到剪贴板
# 例子2:同个事件,多个事件监听器
可以看到,事件触发时,事件监听器按照注册的顺序执行。
var EventEmitter = require('events');
class Man extends EventEmitter {}
var man = new Man();
man.on('wakeup', function(){
console.log('man has woken up');
});
man.on('wakeup', function(){
console.log('man has woken up again');
});
man.emit('wakeup');
// 输出如下:
// man has woken up
// man has woken up again
@前端进阶之旅: 代码已经复制到剪贴板
# 例子3:只运行一次的事件监听器
var EventEmitter = require('events');
class Man extends EventEmitter {}
var