在模块之间共享的事件发射器

Event emitter shared between modules

本文关键字:事件 发射器 共享 模块 之间      更新时间:2023-09-26

我使用事件发射器,似乎我在几个模块中需要它,我的意思是我想使用相同的实例,我的问题是最好创建一个暴露事件发射器实例的模块以及建议如何做到这一点?

我所做的就像我在模块之间共享的以下内容,但不确定是否推荐......请让我知道

var events = require('events');
var eventEmitter = new events.EventEmitter();
module.exports = {
    getEventEmitter: function () {
        return eventEmitter;
    }
};

你拥有的代码很好。

如果需要,可以这样简化:


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

请注意,虽然这通常工作正常(我经常这样做),但可能会破坏require模块缓存并最终得到不同的实例。