Node.js模块没有通信

时间:2014-11-16 16:45:53

标签: javascript node.js events asynchronous

我正在通过构建个人项目来教自己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函数中,我可以监听事件,但除此之外,我不能。任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

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

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