gpt4 book ai didi

javascript - 使用 Node.js EventEmitter 而不使用子类化

转载 作者:太空宇宙 更新时间:2023-11-04 00:51:13 25 4
gpt4 key购买 nike

是否可以在两个不同的文件中使用 Node.js EventEmitter,而不需要子类化 EventEmitter?

我已经尝试过这个:

文件1.js

var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();

emitter.emit('eventFromFile1');

文件2.js

var EventEmitter = require('events').EventEmitter;
var emitter = new EventEmitter();

emitter.on('eventFromFile1', function(){
console.log('Received event'); // Never happens
});

这不起作用。我猜这是因为事件发射器的两个实例存在并且它们没有连接。

我可以在不继承 EventEmitter 的情况下实现类似的行为吗?

(我是 Node.js 新手)

最佳答案

无需子类化,只需使用相同的事件发射器即可。在您的示例中,您有两个不同的事件发射器。

像这样:

文件1.js

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

emitter.on('my_event', function(){
console.log('Received event'); // Never happens
});

文件2.js

var emitter = require('./File1.js').emitter;
emitter.emit('my_event');

关于javascript - 使用 Node.js EventEmitter 而不使用子类化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32350637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com