我正在通过构建个人项目来自学node.js。我试图通过将代码拆分为单独的模块来遵循最佳实践。但是,我遇到了一个问题,其中我的一个模块正在与调用方模块通信。我已经使用了回调函数和事件,但是调用者模块从不从被调用模块获取任何东西,除非被调用模块立即返回一个值。请查看下面的代码,让我知道我所缺少的内容:

blogs.controller.js(调用方模块)

var ImageParser = require('../../components/parsers/ImageParser.js');
.....
var imageParser = new ImageParser();
imageParser.on('imagesParsed', function(){
console.log('test)});


ImageParser.js(称为模块)

var EventEmitter = require('events').EventEmitter;
var util = require('util');

var ImageParser = function(){
    this.emit('imagesParsed');
};

util.inherits(ImageParser, EventEmitter);

module.exports = ImageParser;


在ImageParser函数中,我可以监听事件,但是在事件之外,我不能监听。任何帮助将不胜感激。

谢谢

最佳答案

我实际上在另一个问题的答案中找到了答案,答案是@ linus-g-thiel
另外,感谢@Pointy

原来,我需要从方法而不是构造函数发出事件,并且侦听器需要在方法调用之前。现在正在工作。

09-12 01:58