【发布时间】:2019-09-11 16:34:18
【问题描述】:
我有 3 个文件
a.js 共享 EventEmitter 模块
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
module.exports = myEmitter;
b.js 发布者
const myEmitter = require('./a');
// Perform the registration steps
let user = 1;
setInterval(() => {
myEmitter.emit('user-registered', user);
user++;
}, 1000);
// Pass the new user object as the message passed through by this event.
c.js 订阅者
const myEmitter = require('./a');
myEmitter.on('user-registered', (user) => {
// Send an email or whatever.
console.log(user);
});
当我运行 b.js 或发布者时,事件会不断发布,但是当我在单独的窗口中运行 c.js 时,它会立即退出执行,如何在订阅者实际监听发布者的情况下使其工作
【问题讨论】:
-
“一个单独的窗口”到底是什么意思?你的意思是完全不同的nodeJS进程吗?如果是这种情况,那么 EventEmitter 将无法解决您的问题,因为 EventEmitter 事件存在于单个节点进程中。如果我正确理解您的问题,请参阅此答案here 以获得可能的答案。
标签: node.js events eventemitter