node小记:EventEmitter监听器

287 阅读1分钟

在程序中使用监听器来监测某个事情的发生,需要创建一个扩展自EventEmitter的类 创建logger.js

const EventEmitter = require('events');

//使用es6 class类  这样这个类就具有了EventEmitter所有的功能
class Logger extends EventEmitter {
    // 添加任意自定义功能
    log (msg) {
        console.log(message);
        //发起事件
        this.emit('messageLogged', {id: 1, url: 'https://'})
    }
}

// 暴露的是类  不是方法
module.exports = Logger;

回到需要使用的地方

const Logger = require('./logger.js');
const logger = new Logger();

logger.on('messageLogged', (arg) => {
    console.log('Listener called', arg)
}) 

logger.log('message');

执行任务 输出结果

message
Listener called { id: 1, url: 'https://' }