我正在通过构建个人项目来教自己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函数中,我可以监听事件,但除此之外,我不能。任何帮助将不胜感激。
由于
答案 0 :(得分:1)
我实际上在回答另一个问题时找到了答案,@ linus-g-thiel回答道 另外,感谢@Pointy
结果我需要从方法而不是构造函数发出事件,并且侦听器需要在方法调用之前。它现在正在工作。